로지스틱 회귀와 신경망의 차이 로지스틱 회귀는 히든레이어가 없는 신경망의 특수한 경우라고 볼 수 있다. 로지스틱 회귀는 선형 모델에 주로 사용하는데, 선형모델이 아닌 복잡한 비선형 관계에서는 사용하기 어려울 정도로 퍼포먼스가 나지않는다. 그에 반해 신경망은 히든레이어를 구축하고 점점 더 복잡한 관계를 포착할 수 있기 때문에 퍼포먼스가 더 좋다. 비선형관계에서 Logistic Regression의 decision boundaries. 죽 그어진 선 형태라 위와같이 비선형분포에서 정확도가 떨어질 수 밖에 없다. 비선형관계에서 은닉층을 4개 둔 신경망의 decision boundaries. 참조 Quora: What is the difference between neural network and logisti..
역전파와 경사하강법의 차이점 역전파와 경사하강법은 같은 것인가? 가중치와 편향을 업데이트하기 위해서 사용한다는 것이 비슷해서 헷갈리는 역전파와 경사하강법. 과연 같은 것일까? 찾아보았다. 경사하강법 : 비용함수가 최소가 되도록 가중치와 편향을 찾는 최적화 알고리즘. 역전파 : 신경망의 기울기를 계산하는 알고리즘. 즉, 경사하강법은 비용함수가 최소가 되도록 하는 가중치와 편향을 찾기위해 역전파(신경망 기울기 계산) 를 사용할 수 있는 것이다. 결론 : 역전파와 경사하강법은 똑같지 않으며 경사하강법이 역전파를 이용하는 관계다. 참고 What is the difference between gradient descent and back propagation in deep learning? Are they not..
Clean Code 1. 깨끗한 코드 의도를 분명하게 이름을 지으라. 나쁜 예 int d; 좋은 예 int elapsedTimeDate; int daysSinceCreation; 코드의 맥락이 코드 자체에 명시적으로 드러나게 하여 정보를 충분히 제공해야한다. 그릇된 정보를 피하자 일관성을 유지하여 깔끔한 정보를 주자. 미리 정해진 예약어는 피해서 깔끔한 정보를 주자. l과 1, o와 0과 같이 헷갈릴 수 있는 문자를 피하자. 불용어를 쓰지 말자. class라는 이름을 이미 사용하고 있어서 klass라고 하고싶은가? 하지말자. 불용어는 중복이기도 하다. money와 moneyObject가 있다면 무엇을 뒤져야 하는지 헷갈리지않겠는가! 쓰지말자. 발음하기 쉬운 이름을 사용하자. 프로그래밍은 사회활동이다. a..