아무리 쉽게 해도 어려운 이야기
개인화 추천 알고리즘의 다음 단계로 나아가기 위해서는 인공신경망을 이해해야 한다. 이것이 Word2Vec의 기초가 되는 이론이다. 인공신경망을 아무리 쉽게 이해하려고 해도 정말 방대한 이론이다. 이게 맞는 비유일지는 모르겠지만 군대를 가는 과정을 가지고 비유를 해보겠다.
일단 직장인을 예로 들어보겠다. 회사의 팀장이 점심때마다 피자 먹는다. 그걸 몇 년 계속 반복하다 보면 팀장이 "뭐 먹고 싶어?"라고 물어보면 기계적으로 피자를 먹고 싶다고 말한다. "팀장"이라는 인풋값이 들어오면 "피자"를 먹는 아웃풋을 예측하는 것이 머신러닝이다.
하지만 새로온 팀장은 이렇게 일차원적이지 않다. "비"가 오면 "파전"을 먹고, "눈"이 오면 "국밥"을 먹는다. 근데 애매한 비같은 눈이 오는 날이 있다. 이 날은 팀장한테 "파전"을 먹자할까 "국밥"을 먹자할가 하다가 비오는 날에 가까운 것 같아 "파전"을 먹자고 예측했다. 하지만 팀장이 "국밥"을 먹자고 했다. 그러면 나의 예측값인 "파전"과 실제 결과치인 "국밥"의 오차를 반영하여 추운 겨울날 비가오면 왠만하면 "국밥"을 먹자고 하면서 가중치를 조절한다. 이렇게 예측값과 결과값을 계속 비교해가면서 가중치를 조절해나가는 과정이 딥러닝이다.
그리고 이렇게 팀장님의 눈치를 보고 계속 비교해가면서 팀장님이 먹고 싶은 걸 찾아가는 알고리즘을 인공신경망이라고 한다. (생물학을 모르지만 인간의 뉴런이 이렇게 작동한다고 한다.)
정리하자면
- 머신러닝 = 팀장님이 먹고 싶은 걸 맞추기 (상위개념)
- 딥러닝 = 팀장님이 실제 먹은 것과 비교하면서 먹고 싶은 걸 고급스럽게 맞추기 (하위개념)
- 인공신경망 = 팀장님이 먹고 싶은 걸 찾기위한 눈치 (알고리즘)\
머신 러닝과 딥러닝, 인공신경망
인공 신경망은 수많은 머신 러닝의 방법론 중에 하나이며, 인공 신경망을 복잡하게 쌓아올린 모델을 딥 러닝이라고 한다. 딥 러닝을 이해하기 위해서 인공신경망에 대한 이해가 필요하다.
- 머신러닝 : 데이터를 모델에 훈련(training), 학습(learning) 시켜, 새로운 데이터가 들어올 때 값을 예측하는 것을 머신러닝이라고 함. 머신러닝은 광범위한 개념으로 딥러닝을 포괄하는 개념임
- 인공신경망 : 인간의 신경망을 본뜬 모델로 입력층, 은닉층, 출력층으로 구분되어 있으며, 특히 은닉층이 2개 이상인 경우 심층 신경망이라고 함
- 딥러닝 : 머신러닝의 일종으로 훈련,학습 시키는 모델이 은닉층이 2개이상인 심층 신경망인 경우 값을 예측하는 것을 딥러닝이라고 함. 쉽게 말해 심층 신경망 + 머신러닝이라고 보면 됨
아이들 교육용으로 제작한 머터리얼 같은데 아주 이해가 잘 된다. ↓
단층 퍼셉트론 (single layer perceptron)
퍼셉트론은 인공신경망의 하나이다. 들으면 들을 수록 머리가 복잡한데 쉽게 말해 이렇게 생각하면 된다.(생물학도가 아니므로 예시가 틀릴 수 있다!) 인간의 신경망은 특정자극(입력값)에 반응(출력값)한다.
이성의 외모와 마음 두 가지 입력값이 있다고 하자. 사람 A는 외모의 중요성이 80%이고 마음의 중요성이 20%이다. 반면에 사람 B는 외모의 중요성이 20%이고 마음의 중요성이 80%이다. 그리고 이들 앞에 외모매력도 70%, 마음 매력도 30%를 가진 이성이 나타났다. 사람 A와 사람 B는 0.5 이상이면 "매력있다"라고 느낀다.
- 사람 A : 외모매력도 0.7 * 외모중요도 0.8 + 마음매력도 0.3 * 마음중요도 0.2 = 0.62 -> 매력 있다(1)
- 사람 B : 외모매력도 0.7 * 외모중요도 0.2 + 마음매력도 0.3 * 마음중요도 0.8 = 0.38 -> 매력 없다(0)
사람 A라는 경우는 0.5 이상이므로 "매력있다"라는 결과를 출력할 것이다. 이렇게 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘을 단층 퍼셉트론이라고 한다.
다층 퍼셉트론 (multi layer perceptron)
단층 퍼셉트론은 입력층과 출력층 두 가지 층만 존재하므로 한 가지의 가중치만 먹일 수 있다. 이러한 경우 입력값에 따라서 출력값은 정확하게 예측할 수 없는 경우가 생긴다.
- 사람 A 는 외모의 중요성이 80%, 마음의 중요성이 20% 이지만 외모매력도가 100%, 마음매력도가 100%인 경우는 너무 부담스러워서 "매력없다"고 느낀다.
위와 같은 경우 기존의 방정식인 외모매력도*0.8 + 마음매력도*0.2 로는 예측할 수 없는 경우인 것이다. 따라서 우리는 좀 더 복잡한 모델이 필요하며 다양한 층의 가중치를 부여할 수 있어야 하고, 이렇게 입력층과 출력층 사이에 중간에 층을 더 추가하는 것을 은닉층(hidden layer)라고 한다. 다층 퍼셉트론은 중간에 다양한 은닉층이 존재한다는 점에서 단층 퍼셉트론과 다르다. 다수의 입력으로부터 다수의 결과값을 내보내는 알고리즘을 다층 퍼셉트론이라고 한다.
개인화 추천 알고리즘의 길은 험난하다!!
'데이터 분석 > 데이터 분석' 카테고리의 다른 글
개인화 추천 알고리즘 7 : 협업 필터링 (0) | 2022.03.01 |
---|---|
개인화 추천 알고리즘 6 : Word2Vec (CBOW, Skip Gram) (0) | 2022.02.27 |
개인화 추천 알고리즘 5 : TD-IDF 모델로 유사도 분석하기 (0) | 2022.02.08 |
개인화 추천 알고리즘 4 : 컨텐츠 기반 모델과 코사인 유사도 함수 (0) | 2022.02.08 |
개인화 추천 알고리즘 3 : 컨텐츠 기반 모델과 유사도 함수 (0) | 2022.02.07 |
댓글