패스트캠퍼스 환급챌린지 23일차 : 딥러닝·인공지능 Signature 초격차 패지 강의 후기
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
강의 수강 시작
수강 완료 완료
학습 인증샷
오늘은 텐서플로우에서 제공하는 다양한 연산과 함수에 대해 학습하는 시간을 가졌다. 특히 자동 미분과 기울기에 대한 개념을 배우면서, 이를 활용하여 단순한 뉴런부터 점점 깊은 모델을 설계하는 과정까지 익혔다. 이전 강의에서 파이토치에 대해 배웠기에 개념적으로는 익숙한 부분이 많았지만, 차이점도 존재했다. 텐서플로우에서는 특정 차원을 줄이는 연산을 수행할 때 reduce를 사용한다는 점이 차이가 있었다. 따라서 텐서를 선언한 후 평균값을 출력할 때 tf.constant를 사용한 다음 print(tf.reduce_mean(a))와 같이 작성해야 한다는 점을 알게 되었다.
수업의 마지막에는 깊은 신경망 모델을 설계하고 실험하면서 왜 네트워크의 깊이가 깊어질수록 정확도가 떨어지는지에 대해 고민해 보는 시간을 가졌다. 이에 대한 가장 대표적인 원인은 오버피팅이 있다. 신경망이 깊어질수록 파라미터의 수가 증가하기 때문에 모델이 학습 데이터에 지나치게 적합하게 맞춰지게 되고, 그 결과 성능이 떨어지는 것이다. 따라서 학습 데이터를 다룰 때는 단순히 이론적인 접근만으로 해결할 수 있는 문제가 아니라, 적절한 하이퍼파라미터를 설정하는 감각을 익히는 것이 중요하다고 생각한다. 이러한 감각은 단순히 이론을 공부하는 것만으로는 이해하기 어렵다고 생각한다. 따라서 계속해서 직접 코드를 작성해보는 것을 직접 경험해 보면서 길러야 할 것 같다.
오늘의 코드 에러는 lr은 인식하지 못한 거였다. lr=learning rate라고 정의는 했지만 이를 인식하지못했다. 그래서 lr이라고 하는 대신 learning rate라고 바꿔주었다. 그러니 인식을 했다. 텐서플로우 2.x버전에서는 왜인지 모르겠지만 에러가 뜬다고 한다. 이 수업을 보면서 가장 큰 고민은 과연 내가 혼자서 이러한 복잡한 코드를 직접 구성할 수 있을까 하는 점이다. 지금까지 배운 내용을 보면서 계속해서 익숙해지려고 많은 시간 노력을 해야 하는 것은 사실이지만 이를 감안한다고 해도 자유자재로 다룰 수 있으려면 상당한 시간이 필요할 것 같다. 과연 혼자 힘으로 모델을 설계할 수 있는 날이 올지 걱정이 되지만, 꾸준히 학습하고 연습하다 보면 언젠가는 가능해지지 않을까 하는 희망도 가져 본다.