C++ 고급 문법 (11) — 연산자 오버로딩(Operator Overloading)

벡터 덧셈을 add(a, b) 대신 a + b로 쓰고, 사용자 타입을 std::set에 넣으려면 연산자 오버로딩(operator overloading)이 필요하다. 연산자는 이름이 operator+인 함수일 뿐이지만, 멤버로 둘지 비멤버로 둘지, 무엇을 반환할지에 따라 대칭성·성능·의미가…

Continue ReadingC++ 고급 문법 (11) — 연산자 오버로딩(Operator Overloading)

머신러닝 입문 (6) — 자동미분(autograd) 직접 만들기

5편에서는 은닉층 하나짜리 신경망의 기울기를 손으로 유도했는데, 활성함수를 바꾸거나 층을 하나 더 얹으면 유도를 처음부터 다시 해야 한다. 프레임워크는 이 일을 자동미분(automatic differentiation)으로 대신한다. 이 글에서는 스칼라 autograd 엔진을 100줄…

Continue Reading머신러닝 입문 (6) — 자동미분(autograd) 직접 만들기