7월, 2016의 게시물 표시

최근 근황

오랜만에 글을 쓰는 거 같다..
최근 근황은 뭐 계속 회사 생활의 반복이다.. 눈깜짝하니 입사한지도 1년이 어느새 훌쩍넘었다. 뭔가 해보고 싶은게 많은데, 회사 다니면서 출퇴근 시간도 길고, 내가 체력도 안좋고 부지런한 편도 아니라서 진짜 회사만 다니기 벅찼던 것 같다.
그래도 나름 뭔가 해보려고 최근에 2가지 활동을 했었다.     그중에 하나는 컨트리뷰톤이다. 작년이나 올해 초까지만해도 오픈소스 활동을 했었는데, 회사다니면서 자연스레 멈추게 되었다. 다시 한번 오픈소스 활동을 시작하기 위한 계기를 삼으려고 컨트리뷰톤이라는 프로그램에 참여하여 uftrace 라는 C/C++ function tracing 툴 프로젝트에서 활동을 했다. 현재는 컨트리뷰톤 활동은 끝났고, 이번 달 말에 폐회식?시상식? 이 있을 예정이다.     또 하나는 블록체인 스터디이다. 반년전쯤부터인가 블록체인쪽에 관심이 생겨서 한번 공부를 해보려고 스터디를 하게 되었다. 스터디는 현재 진행형이다.
회사를 다니면서 이렇게 2가지 활동을 동시에 했다. 이 활동들에 내가 투자하려고 했던 시간/에너지 양이 대략 있었는데, 막상 해보니 실제로 투자한 시간은 내 예상의 20% 도 안되는 것 같다. 신규 기능개발로 인해 회사 일이 최근에 바쁘기도 했고, 생각보다 내가 시간과 자기관리를 제대로 못했다. 시간투자를 많이 못한게 아쉽긴 한데, 일단 뭐라도 해본 것에 의의를...
아 그리고, 최근에 우리 팀 우리 파트 채용공고를 새로 냈다. 기존의 채용 공고가 너무 모호하고 매력이 떨어진다고 생각해서 내가 건의를 해서 채용공고의 내용을 바꿔봤다.

채용공고 보기/숨기기
모집부분 - C++ 기반 공용 모듈 개선 및 개발 - C++ 기반 엔진 모듈 개선 및 개발 담당업무 - 사내 C++ 공용 라이브러리 개선 및 개발 - C++ 기반 악성코드 탐지/치료 엔진 개선 및 개발 - 코드 품질 및 개발 프로세스 개선 자격요건 - C++ 활용에 자신 있는 분 - 능동적이고 적극적으로 업무를 수행하시는 분 우대요건 …

모두를 위한 딥러닝 강좌 시즌 1 정리 (하) - lec 8 ~ 12

이미지
NN(Neural Network)
K(X) = sigmoid(XW₁ + b1)
H(X) = sigmoid(K(X)W₂ + b2)

Back propagation
딥 네트워크에서 나온 결과물에서 나온 error(또는 cost)를 역으로 전파시키면서 weight들에게 그 것을 반영시키는 것.
미분과 chain rule을 이용하여 각 weight가 결과에 미치는 영향(변화량)을 계산하여 그 것만큼 반영시킨다.
(Back propagation)
Geoffrey Hinton's summary of findings up to today
1. Our labeled datasets were thousands of times too small.
2. Our computers were millions of times too slow.
3. We initialized the weights in a stupid way.
4. We used the wrong type of non-linearity. (Activate Functions)

Vanishing gradient (NN winter2 : 1986-2006)
깊은 NN일 경우, back propagation이 진행되면서 점점 초반 부분의 layer들의 영향력이 작아지는 문제. 
sigmoid를 사용할 경우 이 문제가 크게 발생한다. ReLU등의 다른 activation functions을 사용하면서 어느정도 해결할 수 있다.

Activation Functions
종류 : Sigmoid, tanh, ReLU, Leaky ReLU, Maxout, ELU, ...
ReLU (Rectified Linear Unit) = max(H(x), 0)
비교 : https://hunkim.github.io/ml/lec10.pdf 24페이지

Initializing weights wisely
- Not all 0's
- challenging issue
비교 : https://hunkim.github.io/ml/lec10.pdf 52페이지

Restricted Boatman M…

모두를 위한 딥러닝 강좌 시즌 1 정리 (상) - lec 1 ~ 7

Supervised Learning : learning with labeled data
Unsupervised learning : learning with un-labeled data
즉, supervised는 이미 정답이 있는 문제들을 가지고 학습시키는 것을 말하고, unsupervised는 정답(라벨)을 지정해 주지 않은 문제들(데이터들)을 가지고 학습하는 것을 말한다.

Supervised Learning의 종류
regression : 연속적인 결과에 대한 예측
binary classification : 2개의 결과 중에서 예측
multi-label classification : 여러가지의 결과들중에서 예측.

Linear Regression
Linear한 모델로서 regression을 하는 것.
H(x) = Wx + b

Cost function
우리의 모델에서 나온 예측값과 실제 결과값의 차이를 계산하는 함수.
cost = 1/m * Σ{H(x) - y}
(m = 데이터 개수, Σ : 총 m개의 x에 대해 괄호안의 수식값들을 합하는 함수.)

Gradient descent algorithm
cost function을 minimize하는 algorithm중 하나.
W := W - αΔcost(W) (α = learning rate, Δ = W에 대한 미분)
convex function에만 적용할 수 있다.

Multi-variable Linear Regression
변수가 여러개인 Linear Regression
H(x) = w1*x1 + w2 * x2 + ... + b = (행렬의 곱으로 표현)
W = [ b  w1  w2  ... ]
X = [ 1  x1  x2  ... ]
H(X) = transpose(W) * X

Sigmoid

이 블로그의 인기 게시물

[Effective C++ 3판] Chapter 1. C++에 왔으면 C++의 법을 따릅시다. (항목 1~4)

개발다운 개발에 대해...

최근 근황