본문 바로가기

복잡도

(3)
Regularization: 복잡도를 다스리는 법 개인적으로 전문용어가 어색하게 한글화되는 것을 별로 좋아하지 않는데, regularization도 그런 경우에 속합니다. 적당한 한글 용어를 찾기가 어렵습니다. 인터넷에 검색해보면 '규제화'라고 번역한 경우를 봤는데 페널티로 모델 복잡도를 제어하는 방식에는 유효하지만 다른 방식에는 조금 어색한 표현입니다. '일반화'는 그냥 generalization를 번역한 것 같지만 또 한편으론 학습오류와 테스트오류를 합친 generalization error를 줄인다는 의미처럼 보여서 나름 합당한 면이 있습니다. '정규화'라고 번역한 경우도 있는데 개발자들이 많이 사용하는 regular expression을 정규식이라고 부르니 정규화도 타당한 번역이지만 데이터를 정규 분포를 따르도록 만드는 normalization,..
디버깅과 엔트로피 얼마 전에 내가 담당하는 (다양한 서비스 로그를 분석해서 순위 데이터 제공) 서비스에 문제가 있는 것을 파악하고 급하게 수정 작업을 진행했다. 적당히 테스트해보니 문제가 해결된 것같아서 그대로 커밋을 해버렸다. 다음날 실 서비스를 확인하는 별다른 문제가 눈에 띄지도 않고 데이터도 정상적으로 나오고 있어서 전날 버그수정이 제대로 이뤄졌다고 생각했다. 그런데 2주 정도가 지난 후에 조금 다른 문제가 계속 발생하고 있음을 깨달았다. 처음에는 다른 곳 (데이터 가공에서 변수에 따른 가중치 산정)에 문제가 있는 것같아서 또 급하게 수정했다. 그 다음날 서비스는 정상적이지만 조금 이상하다는 것을 느꼈다. 그래서 다시 테스트런을 하고 소스코드를 면밀히 검토하니 2주 전에 수정할 때 프로그램에 또 다른 간단한 버그가 ..
더하기는 쉽고 빼기는 어렵다 나름 업계의 트렌드에 빠삭하다고 자부하기 때문에 새로운 서비스가 소개되면 일단 가입부터하는 버릇이 생겼다. 잘못된 자만심은 늘 불행의 씨앗이다. 그냥 기다렸다가 한번 정리가 된 서비스에 가입해서 사용하면 될 것인데, 일단 가입부터 해서 한두번 사용해보고 재미없어서 그냥 묵히는 경우가 많다. 초기 테스트를 위해서 소개된 웬만한 기능들은 다 활성화시키고, 가용한 친구들은 다 추가시키거나 친구요청이 들어오면 아무런 가이드도 없이 그냥 수용하는 경우가 많다. 트위터를 처음 사용할 때 조금 유명세를 탄 이후에 들어오는 대부분의 팔로잉을 맞팔로잉했고, 페이스북은 게임을 한다고 게임친구들을 마구잡이로 추가했고, 구글+도 친구요청이 오면 다 추가했다. 그렇게 막무가내로 친구나 기능을 추가하다보면 당연힌 사용빈도나 연결..