목록책리뷰 (15)
Scientia Conditorium
[책리뷰] Refactoring(리팩터링) 2판 서론부터 시작해서 굉장히 흥미롭게 본 책이다. 프로그래밍을 시작하면서 가장 많이 들었던 말 중 하나는 '프로그래밍은 책으로 공부하는게 아니다' 라는 것이다. 개인적으로 반은 맞고 반은 틀리다고 생각한다. 확실히 프로그래밍은 직접 코드를 작성하면서 의도대로 잘 작동하는지, 오류가 있으면 어떤 부분이 문제인지를 지속적으로 파악해가면서 공부하는 것이다. 그러나 이미 선대 프로그래머분들이 직접 겪어본 삽질을 내가 다시 수십년간 반복할 필요가 있을까?! 이런 부분은 책을 통해서 충분히 공부가 가능하다고 본다. 훌륭한 프로그래머분들이 작성한 이 리팩터링 책은 여러 프로젝트를 통해 발견된 오류와 삽질을 정리해서 알려준다. 나같은 초보 프로그래머들은 수백만줄이나 되는 프..
혼자공부하는 머신러닝+딥러닝/혼공단 5기 - 5주차 K-평균 알고리듬은 주어진 데이터를 k개의 클러스터, 군집으로 묶는 알고리듬으로 각 군집간의 거리 차이의 분산을 최소화하는 방식으로 동작한다. 위 애니메이션은 k-평균 알고리듬 위키피디아 페이지에 있는 자료로서 직관적으로 이해하기 쉽게 표현하였다. 작동하는 방식을 설명하자면 다음과 같다. 1. 주어진 데이터에서 k개 평균값(중심점)을 생성한다. 여기서 보통은 랜덤 초기화 알고리듬이 사용된다. 2. 데이터들은 가장 가까이 있는 평균값을 기준으로 클러스터,군집이 나뉜다. 3. 나뉘어진 클러스트,군집에 속한 데이터들의 평균값으로 클러스터 중심점을 변경한다. 4. 데이터들의 소속 클러스터가 바뀌지 않을 때까지 2,3번 과정을 반복한다. 다시 말해, k-평균 알..
혼자공부하는 머신러닝+딥러닝 / 혼공단 5기 - 4주차 머신러닝 학습 모델을 만들 때, 테스트 세트를 자주 사용하면 모델의 성능이 점점 테스트 세트에 맞추어지게 됩니다. 가능하면 테스트 세트는 모델을 만들고 난 후 마지막에 딱 한 번만 사용하는 것이 가장 좋습니다. 허나 테스트 세트를 사용하지 않으면 모델이 과대/과소적합인지 판단하기 어렵습니다. 따라서 훈련 세트를 여러 개로 잘게 나누어서 그 중 하나를 검증 세트(validation set) 혹은 개발 세트(dev set)로 사용합니다. 검증 세트를 번갈아가면서 모델을 평가하고 얻은 검증 점수를 평균하는 방법을 교차 검증(Cross Validation)이라고 부릅니다. 위 그림은 교차 검증의 대표적인 예인 k-폴드 교차 검증(k-fold cross va..
혼자공부하는 머신러닝+딥러닝 혼공단/5기 3주차 리뷰입니다. 이제 슬슬 여러 분류 알고리즘이 나오기 시작합니다. 어찌보면 슬슬 어려워지기 시작한다고 볼 수 있겠습니다. 지금은 시그모이드 함수 대신 렐루(ReLU) 함수를 사용하지만 이 부분은 7장에서 나오더군요. 4장까지는 머신러닝 기초 학습 및 코드에 익숙해지는 것이 중요하다고 판단해서인지 이런 구성이된 것 같습니다. 그리고 '여기서 잠깐' 코너에서 용어들을 깔끔하게 정리해주는 내용이 무척 마음에 듭니다. 4-2장을 시작할 때 첫 문단의 내용을 보고 웃었습니다. [김 팀장이 혼공머신을 불러서 영업 팀과의 회의 내용을 알려 주었습니다. 아니 정작 개발할 사람을 빼고 회의로 결정하다니요. 개발은 언제나 이런 식이죠!] Stochastic, Minibatch..
이것이 C#이다(개정판) 책 리뷰 결론 : 널리고 널린 기본 입문서 + WinForm, 네트워크 프로그래밍 with C# 대부분의 입문서가 그렇겠지만 이 책 역시 C# 9.0 버전을 반영했다는 것 말고는 별 차이 없다고 느꼈습니다. '널리고 널린'을 쓴 이유는 다음과 같습니다. C#에는 이러이러한 기능이 있습니다. 대충 main 함수 안에서 이러쿵저러쿵 치면, 어때요?! 잘 작동하죠?! (챕터가 바뀌고) 다시 1번으로... 게다가 책을 자세히 보지 않는 이상 9.0 버전과 이전 버전과의 차이점을 발견하기 힘듭니다. 처음에 이 책을 살펴봤을 때, 다른 입문서와는 다르게 네트워크 프로그래밍 파트가 있어서 놀랬습니다. 다른 입문서들에서는 보지 못했던 파트이기에 흥미로웠습니다. 개정판이기에 이전 버전의 책을 리..