본문 바로가기
반응형

전체 글201

Git - Getting Started Git 은 현존하는 가장 성공한 (그리고 가장 많이 사용되고 있는) 버전 관리 시스템이다. 다만 Git은 여기에 더해서 Branch라는 어렵지만 강력한 기능을 더했다. 애초에 Subversion (SVN) 만으로도 버전관리는 잘 될 수 있지만, 이는 기본적으로 여럿이서 같이 작업을 하기에는 좀 부족한 감이 있다. (사실 SVN도 강력한 manager에 의해서 관리되면 어찌저찌 돌아가기는 한다.) 이를 보완한게 Git 이다. 개인적인 의견이지만, SVN의 한계를 극복하고자 Git이 태어났기 때문에, SVN (또는 그 이전의 형상관리툴) 을 사용하지 않고 바로 Git 을 접하면, 여러가지 혼동이 오기 쉽다. 사실 회사에서 근무하는 많은 동료 개발자들이 Git 의 기본 철학(또는 개념원리?)를 모르는 상태로 .. 2022. 6. 20.
성공 경험 머신런닝에서 강화학습의 일종인 Deep-Q Learning 이라는 게 있다. 결국 어떤 Policy 를 가지고 어떤 행동을 할 때에, 내가 받을 최종 보상을 최대화가 되도록 네트워크를 학습하는 알고리즘인데, 이 때 딥러닝을 하면 항상 자신이 했던 최선의 값을 반복하려는 경향이 있기 때문에, 작은 확률로 일부러 길로 가보게 하는 Trick을 쓴다. 사람도 마찬가지다. "성공 경험" 이라는건 그야말로 휘귀하기 때문에, 어떤 사람이 한 번 성공을 경험 하고나면, 그 것을 자신의 패턴으로 삼고, 그걸 계속 반복하려는 경향이 있다. (심지어 주변 상황이 바뀔지라도), 이런 패턴이 계속 되면 을 택할 가능성은 거의 없다. 2022. 6. 18.
ROC-AUC 를 score로 사용하는 사람들의 흔한 실수 통상 분류(Classification) 은 회귀 예측보다 그 평가 지표를 정량화 하기가 어렵다. 그래서 Cross entropy 같은 다소 복잡한 loss function 을 쓰기도 하는데, 그래도 이진분류 (0 or 1) 에서 가장 흔하게 사용되는 평가 지표는 물론 정합도 (accuracy) 겠지만, 다루는 데이터가 한 쪽으로 심하게 치우친 경우 (imbalanced data)에는 Accuracy는 사실 별 도움이 되지 않는다. 이를 위해 F1-Score 또는 balanced score를 사용하기도 하는데, 이 또한 모델의 자체 성능보다, 이를 분류로 반환하는 cut-off 에 크게 좌지우지 되기 때문에 모델의 성능을 평가하는데에는 썩 좋은 지표라고 하기 어렵다. 그래서 많이 사용하는게 roc-auc .. 2022. 6. 6.
Go. - Functions 2 Go 에서 function 으로 arguments 를 passing 하는데, 기본적으로는 by value 를 사용한다. (즉 함수가 실행될때 주어지는 값을 복사한다.) 단 예외적으로 slice, array 등은 by reference 로 전달된다. (역시 C와 매우 흡사) 만약 single value 를 by referece로 전달하고 싶다면 포인터 (이 역시 C와 매우 흡사)로 전달해줘야 하는데, 그 문법이 유사하다 (referencing with "*", dereferencing with "&") package main import "fmt" func doubleAt( values []int, i int){ values[i] *= 2 } func double(n int){ n *= 2 } func d.. 2022. 4. 25.
반응형