딥러닝의 학습 원리

파이썬 딥러닝을 위한 기초 수학 강좌의 맛보기 강의입니다.

강의 대본 보기

딥러닝의 동작 원리에 대해서 살펴보도록 하겠습니다 딥러닝의 동작 원리를 이해하기 위해서는 딥러닝의 학습 방법에 대해서 좀 알아야 되는데요 딥러닝의 학습 방법은 이렇게 3단계로 구성된다고 보시면 좋을 것 같습니다 첫 번째는 아무 값이나 넣습니다 두 번째는 이 값에 의해서 나온 그 오차를 계산하는데요 이 오차를 저희는 오차함수 내지는 손실함수라고 얘기를 하죠 이 오차를 구한 다음에 이 오차가 줄어드는 방향으로 값을 수정해 나가는 겁니다 이 값이란 얘기는 저희가 말하는 y는 ax 더하기 b 에서 바로 a와 b 다시 말하면 저희가 말한 weight weight 가중치와 그 다음에 편향이죠 이 값을 점점 점점 수정해 나가면서 오차를 줄이는 방향으로 공부를 해야 되는 거죠 이게 바로 경사하강법이라서 저희가 얘기하는 방법이에요 그래서 딥러닝 학습 방법은 처음에는 아무 값이나 넣고 그 값을 넣은 것에 대해서 오차를 구한 다음에 이 오차를 점점 작게 만드는 뭐를 구하는 거죠? 우리가 가중치하고 편향을 구한다 라고 생각하시면 좋을 것 같습니다 이게 바로 딥러닝의 학습 방법입니다 딥러닝의 학습 방법은 3단계 첫 번째 단계는 아무 값이나 넣는다 두 번째는 오차를 구한다 세 번째는 그 오차가 작은 방향으로 값을 수정해 나간다 라는 게 딥러닝의 학습 방법이었는데요 여기서 오차와 값을 수정한다는 게 굉장히 중요한 개념이라 다시 한번 설명을 드릴까 합니다 사실은 딥러닝을 저희가 학습시킬 때 목표를 줘야 되는데 그 목표가 오차를 줄이는 방향 다시 말하면 오차가 우리 딥러닝의 목표가 되는 거고요 점점점점 줄이는 방향으로 공부를 시켜야 되니까 반복적으로 공부를 좀 시켜야 되는 게 바로 경사하강법에 해당되는 부분이라고 보시면 되겠습니다 자 그러면 오차라고 하는 부분을 조금 더 설명을 좀 드려볼까 해요 자 그래서 오차라는 것은 저희가 이제 로스, 코스트, 오브젝티브라고 부르기도 하고요 이 오차를 줄이면 결국은 학습이 잘 되는 함수인 것을 저희가 알게 되는 거고요 그렇다면 이 오차를 저희가 뭐라고 그러냐면 손실 함수 내지는 오차 함수 내지는 비용 함수라고 부르고 있고요 저희가 데이터 전체를 머신러닝 할 때 또는 딥러닝 할 때 x와 y로 나누죠 x는 문제, 다시 말하면 속성이나 그 다음 피처 이렇게 부르기도 하고요 y는 레이블 타겟 뭐 이렇게 부르기도 하죠 그래서 y의 값에 따라서 저희가 분류를 하는지 회귀를 하는지에 따라서 달라지지 않습니까 그래서 이 y에 따라서 쓰는 오차 함수 다시 말해서 손실 함수가 좀 달라지는데 만약에 저희가 회귀를 원한다 리그레이션을 원한다 그러면 이 오차를 평균 제곱 오차로 쓰셔야 되고요 만약에 분류를 원하신다 클래시피케이션의 분류를 원하신다 그러면 교차 엔트로피 오차 두 가지를 쓰셔야 됩니다 이 두 가지는 저희가 기초 수학 부분에 충분히 얘기를 좀 했기 때문에 다시 한번 영상 확인하시면 좋을 것 같고요 예를 들어서 저희가 오차함수를 구하는 방법에 대해서 한번 손으로 한번 계산을 먼저 컴퓨터를 시키기 전에 먼저 해보는 게 좋을 것 같아서요 회귀의 오차함수인 MSE 평균제곱오차로 구하는 방법을 설명을 잠깐 드리고자 합니다 이 출력값이 실제 정답은 아니고요 우리가 y-hat이죠 실제 정답을 Y라고 하면 이 두 개의 차이가 오차가 되는 거죠 Y-hat과 Y의 차이가 저희가 오차라고 얘기하는 부분인 거고 Y-hat과 Y를 뺀 값을 저희가 오차 로스 코스트라고 얘기하는 거죠 그래서 만약에 함수 주식의 Fx는 W 곱하기 X라고 되어 있다 그러면 출력 값이 저희가 실제 y-hat의 예측값은 2와 4와 6이었는데 실제 정답이 있었어요 저희가 알고 있는 거고요 실제 정답하고 차이를 저희가 비교해 보는 거죠 그래서 MSE를 구하는 공식은 y에서 y-hat을 빼는 거예요 실제 값에서 예상 값을 빼고 그러고 나서 제곱을 한 다음에 전체의 3가지의 평균이니까 3으로 n으로 나눈 거니까 지금은 3개니까 오차가 3개니까 3분의 1로 나눠서 오차를 각각 오차를 뭐 예를 들면 2에서 2를 뺀 값을 가지고 또는 4에서 2를 뺀 값, 6에서 3을 뺀 값 하나하나 값을 가지고 하는 게 아니고 얘를 하나의 값으로 만들어줘야 되기 때문에 이걸 제곱해서 더하게 되는 거죠 그래서 결국은 2에서 1 뺀 거에 제곱을 더하고 그 다음에 4에서 2를 제곱한 걸 더하고 그 다음에 6에서 3 제곱한 걸 더하고 다 더해서 3분의 1로 나누게 되면 4.67이 나오는 거죠 이게 바로 MSE가 되는 거고 이거 갖고 오차함수를 만드는 거죠 오차함수 그래프를 그리고 결국 오차함수 그래프가 한 번만 우리가 학습을 하는 게 아니니까요 다른 출력이 나왔을 때 또 다른 뭐를 하는 거죠 오차함수 MSE를 구하는 거죠 그래서 이게 점점점점 작아지는 방법 방향으로 공부를 더 딥러닝을 시키는 거다 이렇게 생각해 주시면 좋을 것 같습니다 이렇게 오차를 구한 후에 학습 방법은 저희가 경사하강법을 선택하는데요 경사하강법이라는 것은 값을 수정하는 거죠 값을 오차의 값을 보고 값이라는 것은 여기서 웨이트 가중치나 편향을 수정한다는 얘기인데요 이게 저희가 오차가 작아지는 방향으로 점점점 내려가기 때문에 경사 기울기 있죠 기울기 뭐 이 기울기를 점점 내려가는 방향으로 저희가 공부를 해줘야 되기 때문에 경사를 하강한다고 해서 경사하강법 경사가 하강되는 방법으로 공부를 시킨다고 해서 경사하강법이라고 얘기를 하고요 그래서 결국은 평균제곱오차 MSE가 최소가 되는 지점을 구해야 되는데 이걸 저희가 최적화 문제라고 얘기를 하고요 이거는 미분이죠 결국은 저희가 기울기를 구하는 방법은 바로 미분이었기 때문에 미분을 해서 그 값이 기울기가 0이 되는 이 w가 최소인 weight가 최소인 그래프가 바로 우리가 말하는 오차를 최소화하는 기울기가 0인 지점이 여기가 되는 거고요 점점점점 아랫방향으로 내려오게 공부를 시키는 거죠 처음에 초기값이 여기 웨이트가 여기 있었다면 그때 기울기를 구하고 기울기는 점점점점 줄어드는 방법으로 공부를 시킨다고 해서 저희가 경사하강법이라고 얘기를 합니다 우리가 말하는 기울기가 0인 지점으로 만드는 이 값에 해당되는 딥러닝의 공부방법인 경사하강법

이 강좌의 맛보기 강의

파이썬 딥러닝을 위한 기초 수학
파이썬 딥러닝을 위한 기초 수학강좌 자세히 보기