‘밑바닥부터 시작하는 딥러닝’ 세미나 2
머신러닝 입문은 문제해결을 위해 알고리즘을 설계하고 구현하던 저에게는 참으로 곤욕스러운 일이었습니다. ‘어떻게’를 알아야만 문제를 해결할 수 있었던 제가 ‘어떻게’를 알려주지 않고 문제를 푸는 세계에 들어온 것입니다.
저는 어차피 다른 세계에 왔으니(연역의 세계에서 귀납의 세계로) 적응하기로 결심했고 그럭저럭 잘 적응해갔습니다. 그런데 딥러닝 세계에 들어서자 ‘어떻게’는 어린아이 장난 같은 수준의 괴롭힘 이었습니다. ‘대체 이것이 가능한 이유가 뭐야’라는 근본적인 수준이 되었을 때 저는 녹다운되었습니다.
몸을 추스리고 뭔가 돌파구를 찾아야 했습니다. 근본적인 수준의 문제는 항상 그렇듯이 그 뿌리를 찾아가야 합니다. 그 뿌리에 퍼셉트론이 있었습니다.
‘퍼셉트론’ 이게 대충 넘어갈 게 아닙니다. 가히 천재적인 발상입니다. 말로 표현할 수 있으면 좋으련만, 느껴야만 알 수 있는 것이라. 이 천재적인 발상이 가능한 것으로 이해되면 신경망이 가능한 이유 또한 이해가 되기 시작할 것입니다.
2.1, 2.2를 읽고 퍼셉트론이 무엇인지, 어떻게 퍼셉트론으로 AND, NAND, OR 게이트가 가능한지를 알아 봅니다. 2.3을 참조해서 파이썬으로 퍼셉트론을 구현해 봅니다.
퍼셉트론에 대해서 좀 더 자세히 알고 싶다면 다음 링크를 참조합니다.
http://www.aistudy.com/neural/model_kim.htm#_bookmark_19e9798
퍼셉트론의 가중치도 놀랍지만 임계값에 대한 발상은 정말 대박입니다. 신경망 연구가 기반이 되었지 않느냐라고 반문할 수는 있지만.
임계값 대신 편향이라는 개념을 도입합니다. ‘누가 왜 그랬는지’가 궁금해서 검색해봤지만 관련 자료는 찾지 못했습니다. 함수의 상수로 표현하기 위해서인가라고 생각해 봅니다.
2.4, 2.5를 읽고 다층 퍼셉트론이 등장한 배경을 이해하고, 다층 퍼셉트론으로 XOR 게이트를 구현해 봅니다.
퍼셉트론은 매개변수 값을 사람이 직접 정합니다. 정해야할 매개변수가 적을 때는 해 볼만하지만 매개변수가 많아진다면…
다음은 어디로 가야할까요? 자연스러운 수순으로 우리는 매개변수 값을 자동으로 설정할 수 있는 방법을 찾아야 합니다.