이 강의는 python을 아는 사람이 들어야할 것 같다. 기초 문법은 알고 있는 사람이 들어야 20분 안에 이해가 가능할 것이다. 만약 나는 딥러닝을 지금 당장 해야하고, 너무너무 급하다! 그러면 python을 공부하며 병행해서 들으면 될 것 같다.
python은 독학으로 Do IT! Python을 떼고 나서는 learning by doing으로 배운 나는 for문의 장단점, if문의 특성 같은 것을 배울 수 있었다.
for문을 쓸 때는 for i in range(a,b) 이런식으로 사용해왔었는데, 이 i는 i보다는 인덱스라면 data_idx라고 표기하던가, data라고 표기하여 어떤 데이터를 반복해서 가져오는지를 명시하는 것이 좋은 코드라고 하셨다.
이 강의는 수학은 아니지만, 클린코드를 배우는 느낌이었다.
강의 이름이 올인원 패키지인데 구현을 위한 클린코드 강의를 넣어주신 것 같아서 뭔가 돈을 아낀 느낌이었다.
그리고 다음에는 클린코드 강의도 한 번 찾아 들어보면 좋을 것 같다.
특히 놀랐던건 if문에서 else의 사용법이다.
예를 들어 True/False에 대한 출력이 다르게 나와야한다면 나는 보통 True에 대한 if문만 쓰고 나머지(False 및 오류)는 다 else로 처리했었는데 그것보다는 T/F에 대한 조건문을 다 작성하고, else는 예외처리로 사용하는 것이 디버깅이 더 편리하다는 것이었다.
오늘 랩미팅에서 디버깅으로 코드이해가 더 잘 될 거라고 조언을 들었는데 디버깅을 하기 위한 코드 작성법을 배운것 같다.
평소에 관심있게 봐오던 강의가 한 5개는 있었는데, 그 중에 제일 듣고 싶고, 가장 비쌌던 수학+딥러닝 강의를 수강했다.
오늘이 바로 1일차! 두근두근하며 강의를 시청했다.
수학적으로 접근하는 딥러닝 올인원 패키지 Online 1일차
첫 강의는 쉽게 introduction 이었다.
요즘에는 딥러닝 구현을 쉽게 할 수 있도록 Tool이 많이 나오지만, 수학적인 접근이 필요한 이유를 설명해주셨다.
나도 '수학이 필요없는 딥러닝' 혹은 '수학없이 딥러닝 구현하기!' '0일 만에 딥러닝 구현' 이런 식의 책이나 강의를강많이 봐왔기 때문에 이 수업을 수강하기 전까지도 고민이 되었던 부분이었다.
강사님은 이 부분에 대해서 딥러닝 구현은 Tool이 해주기 때문에 쉬워진 것은 사실이지만, 설계에 대한 부분이 미흡하고, 딥러닝의 원리에 대한 이해가 부족하기 때문에 딥러닝의 결과를 해석하기 어려운 것이라고 설명해주셨다.
나도 요즘 explain model 에 대해 관심이 생겨서 이 부분이 잘 이해가 됐다. explain model 논문을 읽고 발표했다가 explain이 되는 원리도 이해를 못해서 교수님께 질문 폭탄을 받고 깨달았다.. 나 수학과 이해력이 많이 부족하구나..
딥러닝의 결과를 A to Z까지 설명하긴 어려울지 몰라도 수학적으로 접근한다면, 어느 정도는 해석할 수 있을 거라고 하셨다. 내 다음 연구에서 활용하기를 정말 고대해본다..
그리고 딥러닝에 대해서 설명해주셨다.
딥러닝을 공부하는 사람이라면 정말 기초적인 Multi Layer Perceptron(MLP) 구조부터 설명해주셨다.
그런데, 이 구조를 알고는 있었지만, 이해하지 못 하고 있었다는 것을 바로 느꼈다.
MLP, CNN, RNN 구조를 비교해주셨는데, 결국 세 네트워크 모두 Weighted sum을 계산하고, 그 값을 activation function 으로 연산해서 값을 넘겼다.
이 연산은 달라지지 않았다.
새로운 네트워크를 배울 때마다 너무 어려웠는데, 이렇게 원리를 알고 보니 새삼 쉽게 느껴졌다.
오늘은 소개만 해주셨는데, 앞으로 이러한 연산에 대해서 깊게 배울 거라 생각하니 기대되었다.
이 강의는 딥러닝을 막 시작한 입문자에게는 어려울 것이다.
전문용어(라고 말하지만 그냥 영어)를 많이 말씀하시고, MLP, CNN, RNN의 기본 구조를 몰랐었다면 아마 introduction 강의도 알아듣기 어려웠을 것이다. 물론 그 구조를 설명하시는게 아니라, 예를 들어주신 것이었지만, 아무것도 모르는 상태라면 어려웠을 것이다.