2021/08/06
주간 정리
강의 복습
Python Basic
- 기존에 사용하던 언어와 차이점 파악
- 벡터 생성, 연산 방법을 익혀 수학 공식 구현 대비
- Data를 처리할 수 있는 라이브러리 (np, pandas)
경사하강법
- 경사하강법을 통해 목적식을 찾을 수 있다.
- 실제값과 가설의 차이를 최소화 할 수 있는 방법을 경사하강법을 통해 알아낸다.
통계적 모델링
- 베이즈 정리는 새로운 데이터가 들어왔을때 정보를 갱신하는 방법을 알려준다.
- 조건부 확률로 유용한 통계적 해석을 제공받을 수 있지만 인과관계를 추론하는 것은 불가능 하다.
- 인과관계를 알아내기 위해서는 중첩요인의 효과를 제거해야한다.
RNN
- RNN은 시계열 데이터 (데이터의 순서가 중요한 데이터)에 적용해 볼 수 있다.
- RNN은 과거 데이터의 정보를 다음 레이어에 전달하기 때문에 역전파 과정에서 연쇄적으로 해결해야 한다.
- 너무 오래된 과거 정보는 오히려 성능을 저하시킬 수 있고 연산이 많아진다.
CNN
- CNN은 filter를 사용해서 feature map을 생성한다.
- 입력 데이터의 크기와 커널 크기로 출력(Output)의 크기를 계산할 수 있다.
- 출력의 채널을 늘리려면 커널의 채널을 늘리면 된다.
과제 수행과정 / 결과물
Text Processing
- python의 re모듈을 사용해서 텍스트 데이터를 쉽게 처리할 수 있도록 사용했다.
ex) 공백 제거, 특수문자 제거, ...
Pythonic code
- 리스트에 데이터를 처리하고 넣을때 반복문을 사용해 append()하는것 보다 리프리헨션을 사용하면 좀 더 짧고 가독성 있는 코드를 쓸 수 있었다.
- docstring 모듈을 사용해 특정 코드 세그먼트를 문서화화는 데 사용할 수 있다. 이런식으로 코드에 대한 설명을 넣는 연습을 좀 해야할 것 같다.
경사하강법
- 목적식 y = wx + b 와 cost function을 통해서 선형 회귀 식을 구할 수 있다.
- cost(w,b)와 구하고자 하는 변수 w, b의 기울기 값(gradient)을 반복적으로 빼줘서 극소값에 도달할 수 있다. 이러한 원리를 통해 오차를 최소한으로 줄일 수 있는 w, b를 찾을 수 있다.
역전파
과제(필수) 1~5 해결
과제(선택) 1~3 해결
피어세션
팀원들의 수학 실력이 뛰어나 많은 도움이 되었다. 특히 참조할 수 있는 내용들을 많이 공유해 주셨는데 선형대수학, 확률, 통계에 대한 내용을 많이 공부해야 할 것 같다.
- CNN에서 output channel의 의미는 무엇일까
- 카테고리 분포 공식 유도 과정
- 평균과 기대값의 차이
특히 공식 유도 과정이 강의에서 많이 함축되어 있어 이해가 어려운데 팀원분들이 많이 알려주시는데 확실히 더 쉽게 이해할 수 있지만 아직 부족해 중간 이해 못할때가 있음.
학습회고
많은 프로젝트를 했지만 팀원들과 서로 코드를 리뷰하는 경험은 처음이었다. 그리고 이 과정이 성장하는데 큰 도움을 줄 것 같다. 혼자 구현할때는 단순히 결과만 맞으면 넘어갔던 문제였다면, 같은 문제를 서로 다르게 구현하고 의견을 들으면서 부족했던 부분을 채울 수 있었고 알고있던 것을 공유하면서 복습할 수 있었다.
이제 겨우 1주차에 프리코스에서 들었던 내용을 한번 더 복습하는 과정이었지만 꽤나 힘들었다. 앞으로 잘해나갈 수 있을지 걱정되기도 하고 하루종일 공부하게 되는 나를 보면서 기대도 된다.
1주차 TIL