딥러닝의 개념

파이썬 딥러닝 입문 강좌의 맛보기 강의입니다.

강의 대본 보기

딥러닝 개념에 대해서 간단히 살펴보도록 하겠습니다 딥러닝이라는 것은 왼쪽에 있는 그림이 이제 뉴런이죠 인간의 뇌 구성인 뉴런인 거고요 뉴런을 본따 그대로 만든 게 인공신경망입니다 이 인공신경망 오른쪽에 있는 부분 이걸 통해서 저희가 학습하는 것을 딥러닝이라고 합니다 여기 보시면 뉴런의 구조 보시면 입력 신호가 이렇게 들어오는 부분이 있고요 그리고 이 입력신호가 다음 뉴런으로 아웃풋 출력으로 나갈 수 있고 또 이런 뉴런들이 연결돼서 이런 신호들이 전달이 되는 거죠 그래서 신경 말단에 있는 이 세포를 저희가 시냅스라고 얘기를 하죠 시냅스라고 얘기를 한 거고요 그래서 이 시냅스에서 다음으로 입력된 신호가 다음으로 전달될지 전달되지 않을지 결정하는 거예요 결정하는 거고요 그대로 본따 만들었기 때문에 입력이 들어오는 부분이 있고 그리고 요거가 이제 입력이 되는 거죠 입력 부분이 되는 거고 입력을 받아들이는 부분으로 표시를 한 거고요 각각 입력은 뭐가 있냐면 웨이트가 있어요 가중치라 그래서 웨이트가 x1에는 w1이 있고 x2에는 w2, xn은 w3 각각 가중치가 다르겠죠 가중치가 다른 부분들을 웨이트로 표현했고요 그리고 편향이 있어요 편향, 바이어스가 있고요 그래서 이 실제 입력 값하고 가중치를 곱하고 편향을 더해서 만듭니다 가중치 합을 만들어요 그래서 u는 weight와 x를 곱한 것이고 가중치 편향을 더해주면 이렇게 되는 거죠 w1 x1 더하기 w2 x2 더하기 w3 x3 더하기 b 이렇게 가는 게 가중치 합이 되는 거고요 이 가중치 합을 가지고 다음 우리가 다 시냅스에서 다음 뉴런으로 전달할지 전달할지 안 할지 결정한다고 말씀드렸잖아요 그 결정해 주는 게 바로 다음 다음 다음 인공 신경망으로 이 신호를 넘길지 넘기지 말지 결정하는 게 바로 이제 활성 함수라고 해요 F라고 그러고요 그래서 전체 여기 가중치 합에다가 뭘 씌웠냐면 함수 하나를 씌운 거죠 이걸 활성함수라고 저희가 나중에는 얘기할 거고요 어쨌든 이 함수를 통해서 결과물이 나오게 되는 거기 때문에 U의 전체 부분에다가 F를 씌운 거죠 활성함수를 씌워서 결과물에 해당되는 아웃풋 Y가 나오는 거다라고 보시면 좋을 것 같습니다 그래서 뉴런의 형태를 그대로 본따 만든 인공신경망을 가지고 저희는 뭘 한다 딥러닝 한다 라고 보시면 될 것 같습니다 딥러닝을 이용한 학습 방법은 사실은 굉장히 오래전부터 존재를 해 갖고 왔어요 1940년 후반부터 인공신경망 이라는 이름으로 딥러닝을 저희가 연구를 해 갖고 왔으니까요 근데 이제 이 딥러닝은 아주 간단한 문제 조차도 처음에 나왔을 때는 해결 못하는 문제점을 좀 갖고 있었거든요 그게 가장 대표적으로 나온 문제가 바로 Exclusive OR와 XOR의 문제였는데요 이런 걸 저희 게이트라고 그러죠. 이런 논리 게이트 중에 두 수를 입력받아서 예를 들면 이런 거죠. AND 게이트 같은 경우는 저희가 0, 0을 입력받았을 때 0이 거짓이 되는 거죠. 이 표현에서는. 0, 0이 입력되었을 때 이 값을 가지고 둘 다 1일 때만 AND 게이트는 1로 표시되는 거거든요. 그래서 0이 1일 때는 뭐가 되는 거죠? 0이죠. 그 다음에 1, 0일 때는 얘가 0이고요. 둘 다 1일 때만 1이 나와야 되는 거죠. 1을 참이라고 치면 이런 모양이 되는 거예요. 그래서 저희가 나머지 둘 다 1일 때만 얘가 1이고 여기가 0이라는 뜻이죠. 얘가 1이고 여기가 0이라는 뜻이니까 둘 다 1일 때만 1이 되는 이걸 이제 AND 게이트라고 볼 수가 있고요 그 AND 게이트를 저희가 하나의 선형선 y는 ax 더하기 b 있죠 하나의 선형선으로 구분을 1차 함수로 저희가 구분할 수 있다면 이거는 이렇게 구분하면 되죠 AND 게이트는 간단하게 이렇게 자르면 되잖아요 그러면 이 부분과 거짓인 부분과 참인 부분으로 구분할 수가 있었어요 그리고 OR 게이트는 거꾸로 둘 중에 하나라도 1이면 1인 거거든요. 그러니까 둘 중에 하나라도 참이면 참인 거죠. 그래서 이렇게 나누면 참과 거짓을 나눌 수 있어요. Y는 우리가 많이 봤던 회귀방정식인 ax 더하기 b 있죠. 또 일차방정식으로 두 문제 다 해결할 수 있었어요. 그런데 Exclusive OR와 XOR 같은 경우에는 선 하나를 가지고는 도저히 둘 다 Exclusive OR는 뭐냐면 하나라도 참이면 참인 거거든요. 예를 들면 1, 0도 0, 0은 뭐죠? 0이고요 둘 중에 하나가 참일 때 하나가 1일 때 1인 거예요 0, 1 이게 Exclusive OR 게이트고요 1, 1일 때는 같기 때문에 0이거든요 그래서 둘 다가 다를 때 1로 표현하는 게 XOR 게이트 문제인데 이 문제를 해결하려면 여기 있는 참 있죠 참을 구분해내야 되는데 이걸 구분해낼 때 선 하나를 아무리 잘 그어보세요 이렇게 그어도 안 되죠 섞여 있죠 이거 말고 그럼 이렇게 그어볼까요 이렇게 그어도 안 되죠 어떤 식으로 그어도 안 돼요 이렇게 참과 거짓을 한 선으로 나눌 수는 없다는 얘기죠 이 문제가 결국은 Exclusive OR 문제는 해결 못한 거예요 뭐가 처음에 우리가 말하는 퍼셉트론이라고 조금 이따 나올 건데 처음에 제기됐던 1950년대 초반에 인공신경망으로 구현됐던 퍼셉트론이 이 Exclusive OR XOR 문제를 해결 못했어요 퍼셉트론은 1차방정식 밖에 없었는데 단순한 게이트 조차도 해결 못하는데 딥러닝은 인간의 뇌를 대체할 수 있는, 스스로 학습이 되는 그런 인공신경망이냐 이런 굉장히 많은 비판이 있었던 거죠 그래서 결국 이 Exclusive OR라는 아주 간단한 문제조차도 해결 못하는데 그 복잡한 문제를 우리가 살면서 나오는 복잡한 문제를 어떻게 해결할 거냐 이런 문제가 대두된 거죠 그래서 딥러닝의 암흑기가 몇 번 있었다고 했는데 이 단순한 문제조차도 잘 해결을 못했던 거예요 그러면 이 문제를 어떻게 해결했냐 결론적으로 얘기하면 퍼셉트론 하나만 두지 말고 은닉층을 주는 다층 퍼셉트론으로 우리가 해결했거든요 그래서 그런 것들에 대한 시사점이 되는 게 Exclusive OR 문제라 한번 저희가 언급을 해본 거예요 딥러닝이 초반에는 이런 문제점이 있었다 라고 보시면 좋을 것 같고요 지금은 해결하는 방법을 다 찾았죠 그래서 XOR 문제도 해결이 안 됐던 부분들을 해결하는 방법을 찾았다 지금은 보시면 좋을 것 같고요 그래서 지금 현재 딥러닝은 어떻게 구성되어 있냐면 입력층 구성하셔야 되냐면 입력층이 있구요 그 다음에 출력층이 당연히 있구요 그리고 이제 저희가 이제 딥이라는 것은 말씀드렸듯이 은닉층이 깊어지는 거예요 지금은 은닉층이 뭐 이렇게 두 개 밖에 없죠 히든 레이어가 지금 두 개 밖에 없고 각각의 은닉층 마다 노드도 하나 둘 셋 네 개 하나 둘 셋 네 개죠 그러니까 입력은 세 개 들어오고 출력은 하나가 될 건데 은닉층은 두 층을 쌓았고 각각의 은닉층 마다 노드를 네 개 쌓은 형태의 딥러닝으로 된 거죠 그리고 이 보시면 입력층과 히든 레이어, 다시 말하면 은닉층과 출력층 사이는 반드시 완전 연결층이 돼야 돼요 그래서 각각의 노드가 모든 노드로부터 다 연결돼야 된다는 거죠 또 이 노드도 역시 이 각각의 노드는 앞에 있는 모든 노드로부터 가중치를 받아야 된다 이 완전연결층이 해주는 게 뭐냐면 앞에 있는 노드의 특성을 파악하는 거예요 그래서 모두 다 연결해서 가져와야 되는 거죠 그래서 완전연결층으로 구성되어 있어요 기본적으로는 완전연결층으로 구성되어 있다 이렇게 보시면 좋을 것 같고요 그리고 아까 말씀드렸듯이 선형선 하나로 해결될 수 있는 문제에 올라가서 다시 보시면 아까 봤던 AND OR 같은 경우에는 선 하나로 해결했잖아요 Y는 WX 더하기 B라는 하나의 선형선으로 해결됐다면 XOR 같은 문제는 선형선 하나로 해결되지 않았는데 결국 이건 선형한 문제가 아니고 비선형적인 문제거든요 얘를 찾는 문제는 비선형 문제를 어떻게 해결했냐면 여기는 보이지 않으나 이제 간단히 보려고 좀 여기서는 안 보이나 각각의 은닉층의 노드마다 활성함수를 다 달았어요 활성함수를 다 달고 여기도 다 달린 거죠 사실은 활성함수를 다 달고 이 활성함수가 결국 우리가 뭐 하냐면 결론적으로 출력하고자 하는 형태 Y 있죠 Y의 출력 형태를 비선형 문제로도 해결할 수 있게 활성함수가 도와주는 거예요 그래서 결국은 이 은닉층의 활성함수를 가지고 저희는 선형 문제뿐만 아니고 Exclusive OR와 같은 XOR와 같은 비선형 문제도 해결했다 이렇게 보시면 되겠습니다

이 강좌의 맛보기 강의

파이썬 딥러닝 입문
파이썬 딥러닝 입문강좌 자세히 보기