네 감사합니다. 도움이 되신다니 저도 기쁩니다. 영상 설명란에 몇가지 오류를 수정해두었으니 꼭 참고 부탁드립니다. 전체적인 알고리즘을 보는데에는 영상만으로 충분하지만, 만약 실제적인 숫자까지 고려해보신다면, 마이너한 계산상 에러들이 존재하니 댓글이나 설명란을 참고해보셔요. 감사합니다!
앗..네 도움이 되셨다니 저도 기쁩니다. 저도 처음에 공부할 때, 그때는 유튜브도 없었고, 변변찮은 자료도 많이 접하기 힘들던 때라..도서관에 책들을 찾고 몇날을 고심하고 손으로 그려가며 공부했던 기억이 납니다..지금은 아름다운 추억이 되버렸지만요..ㅎㅎ 암튼 과한 칭찬에 몸둘바를 모르겠습니다. 계속 유익한 영상 많이 올리도록 하겠습니다. 감사합니다. 중간중간에 계산 오류들이 있으니까 디테일한 값들을 계산할 경우에는, 설명과 댓글들을 참조하시면 좋을것 같아요.
지나가던 수행평가 중인 고등학생입니다. 아무래도 고등학생인지라 모르는 부분이 많아서 질문 드립니다. 답변 부탁드립니다. 8:18 새 연결강도를 나타낸 식에서 (델타 뒤집은기호?)C는 무엇인가요? 그리고 그걸 -∂c/∂w₅로 나태낼 수 있는 이유는 무엇인가요? 8:50 편미분값을 사용하는 이유와 바로 구할 수 없는 이유는 무엇이며, 연쇄법칙을 사용한다 하였을 때 식을 저렇게 푼 이유는 무엇인가요? 11:52 o₁에 대해 편미분 할 때, 앞에 -가 붙은 이유는 무엇인가요?
네 안녕하세요 답변이 늦어서 죄송합니다. 요즘 제가 많이 바빠서 좀 답변이 느린점 양해 부탁드립니다. 바로 답변 들어가도록 하겠습니다. 8:18 새 연결강도를 나타낸 식에서 (델타 뒤집은기호?)C는 무엇인가요? 그리고 그걸 -∂c/∂w₅로 나태낼 수 있는 이유는 무엇인가요? ==> 일단 델타 뒤집은 이 기호 ∇ 는 델타와 같은 걸로 보셔도 무방합니다. 원래 고등학교 교과과정에서 배우는 미분 (요즘도 이과에서 배우는거 맞죠?) 은 일변수 함수로서 델타 기호를 쓰구요, 대학과정에 들어가면 공학수학에서는 다변수 함수와 그 미분에 관해 배우는데, 그 다변수 함수의 변화량을 저렇게 델타 뒤집은 기호를 쓰고 읽기로는 델(del) 혹은 나블라(nabla)라고 읽습니다. 하지만 그 뜻은 어쨋든 어떤 변수값 (x)이 바뀔때 함수값 (y)의 변화량으로 보시면 됩니다. 그리고 -∂c/∂w₅로 나타내는 것은 바로 편미분때문에 그렇습니다. 저 식의 의미는 다른 모든 변수들은 그대로 두고 w₅만 미세하게 변화할 때, C값이 얼마나 변화할것인가라는 뜻이구요, C값이 많이 변화하는 쪽으로 w₅를 변화시키고 또 다른 변수도 그와같은 방식으로 변화시키고 이렇게 가다보면 결국 C값이 최소가 될것이라는 경사하강법의 정의에 의하여 편미분을 사용한 것입니다. 마이너스는 기울기의 반대방향으로 가는 것을 의미하는데요, 그림으로 설명하는 것이 이해하기 더 쉽기 때문에, 자세한 것은 제가 올려드린 경사하강법 영상을 참고해주세요. 8:50 편미분값을 사용하는 이유와 바로 구할 수 없는 이유는 무엇이며, 연쇄법칙을 사용한다 하였을 때 식을 저렇게 푼 이유는 무엇인가요? 편미분값을 사용하는 이유는 다변수 함수의 변화량을 구하는 가장 기본적인 방법이기 때문입니다. 바로 구할 수 없다는 이유는, 엄밀히말하면, 바로 그 값을 구하려면 구할 수 있겠지만, 그것은 신경망 전체 연산량을 염두해두었을 경우에는 거의 쓰지 않는 방법입니다. 그 이유는 해당 영상 앞부분에 보여드린 것 처럼 결국 모든 각각의 가중치에 미세한 변화에 따른 C의 변화량을 구하여 C의 변화량이 최대가 되는 것을 찾고 가중치를 변화시키는 방법은 현실적으로 사용하지 않기 때문입니다. 그로 인해 오차역전파라는 방법을 이번 노벨상 수상자인 힌튼이 적극적으로 개발하였고, 이 오차역전파의 핵심이 바로 연쇄법칙이 되겠습니다. 미분의 연쇄법칙은 어느 한 변화량을 구하기 위해 그 변화량까지 이르는 모든 과정의 부분부분의 변화량들을 곱하여 구할 수 있다는 법칙이며, 모든 과정의 부분부분의 변화량들을 '재사용'이 가능하기 때문에, 신경망 전체의 연산과정이 극적으로 줄어들게 되어 빠른 학습이 가능하게 된 것입니다. 11:52 o₁에 대해 편미분 할 때, 앞에 -가 붙은 이유는 무엇인가요? ==> 첫번째 질문에서 답한 것 처럼, 경사하강법의 영상을 보시면 더 잘 이해가 되실것입니다. 감사합니다. 수행평가에 도움이 되셨기를 바라며..
앗 감사합니다. 과찬의 말씀이세요. 댓글들 보시면 디테일하게 에러들이 좀 있어서.. 큰틀에서 역전파 원리와 로직 측면에서는 맞지만, 그래도 실제 계산까지 해보시는 분들께는 또 혼란을 드릴지도 몰라서, 조만간 revision 영상을 다시 올려드리도록 하겠습니다. 그래도 시청해주시고, 힘이되는 댓글 달아주셔서 감사합니다!
네 날카로운 질문 감사합니다! 역전파 알고리즘도 가중치마다 미분값이 필요한 것은 맞습니다. 그러나 역전파 알고리즘의 핵심은 상위층에서 구한 미분값을 재활용할 수 있다는데서 연산량이 많이 줄어들 수 있게 됩니다. 만약 경사하강법만으로 가중치의 미분값을 구하려면, 가중치 한개를 미세하게 변화시킨 뒤 (나머지는 동일하게 두고), 그 가중치 하나의 변화량에 따른 손실의 변화를 계산해야 합니다. 그런 방식으로 각각의 모든 가중치를 다 일일이 계산해야 하기 때문에 연산량이 급증하게 됩니다. 그것을 체인룰을 사용하여 해결한 방법이 지금의 역전파 알고리즘입니다. 역전파 알고리즘도 경사하강법의 약점을 보완하여 세상에 나온 것인데, 말씀하신 바 처럼, 역전파 또한 모든 가중치의 미분값을 구하는 것이기 때문에 여전히 딥러닝의 세계로 넘어와서는 학습이 오래 걸리는 것도 사실입니다. 왜냐하면 역전파는 다층신경망 시절 (1980년대)에 개발된 학습 알고리즘이기 때문입니다. 현재로서는 역전파 알고리즘은 그대로 둔채, 기계의 속도만 향상시키는 방식 (파워풀한 GPU라든지..)으로 접근하고 있습니만, 만약 누군가가 역전파 알고리즘을 뛰어넘는 학습 알고리즘을 개발한다면, 튜링상 쯤은 가뿐하게 받고도 남을 뿐만아니라, 인공지능의 새시대를 열게 될지도 모르는 큰 업적입니다. 한국의 많은 연구자분들이 도전해 보셨으면 하는 바램이 큽니다 ;)
좋은 강의 감사합니다. 강의 내용중 역전파알고리즘 구현을 구체적으로 설명해주셨는데. 역전파알고리즘의 효과에 대한 이유가. 계산시간 단축인가요? 강의 초반에 다층신경망의 계산시간이 어마어마한 점을 보여주시고. 바로 역전파 알고리즘 해설로 넘어가서. 역전파 알고리즘의 실제적인 사용이유는 없어 가지고요. 실제적으로 역전파 사용으로 계산속도와 모델 성능이 개선 될 것 같다는 짐작이 됩니다. ……. 그리고 단순퍼셉트론애서도. 오차값을 현입력값을 곱하여 다음 입력값의 새로운 연결강도를 구하는 것이 현재 구한 오차를 다시 뒤로 돌아가 응용되는 것이 역전파 처럼 보이는데요. 이것도 단순한 역전파 모양 같은데요. 이렇게 생각해도 괜찮을까요?
네 짐작하신 대로 역전파의 사용으로 계산속도가 단순히 경사하강법에 의한 학습보다 훨씬 개선된 것이 맞습니다. 단순퍼셉트론의 경우, 오차값에 현 입력값을 곱하여 연결강도를 구하는 것은 개념적으로는 비슷하지만, 역전파는 그보다 더 깊은 수학적 개념이 추가됩니다. 바로 체인룰이라는 개념입니다 (영상에서 dx/dy같은 것들이 주루룩 연결이 되어있는..그런것) 이 체인룰을 통하여, 연결강도를 업데이트 하는데 바로 이전까지 계산한 값을 재사용하여 계산할 수 있다는, 예를들면 전체가 100층이고 10층에 있는 연결 가중치를 업데이트할때 이전층 즉 11층부터 100층까지의 기울기를 다시 계산할 필요없이, 이전계산된 값을 그대로 재사용할 수 있다는 것은 상당히 효율적인 방법이며, 이 효율로 인해 단층 신경망에서 다층 신경망으로 발전할 수가 있었습니다. 요약하자면 큰 틀에서는, 즉 최종 오차를 사용하여 중간의 가중치를 업데이트 하는 점에서는 대동소이하지만, 실제 자세한 구현의 레벨에서는 체인룰 (미분의 연쇄법칙)을 통해, 상당히 효율적인 구현이 가능하다는 점이 다르다고 할 수 있습니다. 큰 틀에서 같게 보는 것도 맞고, 각론에서 차이점을 배우는 것도 중요한 것 같습니다. 좋은 질문 감사합니다!
맞습니다 아주 정확하게 보셨습니다! 그래서 역전파만으로는 깊은층까지 학습을 위한 기울기가 전달되지 않아서 딥러닝이 가능하지 않았던 신경망의 과거 역사가 있었습니다. 그러나 이제는 여러 다양한 활성화 함수나 다른 방법들 (잔차연결등)이 개발되어 오늘날 딥러닝이 가능하게 된 것입니다. 시청 감사드려요~!
안녕하세요 네 시청 감사드립니다. 말씀하신 w5를 미분한 값은 14:53부분에서 (영상에서는 -0.01로 되어 있지만 실제로는 -0.1인 부분을 말씀하시는것 같습니다) -0.1인데 대입할 때는 왜 +0.1로 바뀌어지는지에 관해 질문하신 것으로 생각됩니다. 일차적인 답은 delw5/delC에서 -0.1이 맞지만, 그것을 가중치 업데이트 할때는 공식에 보시면 -delw5/delC로 되기 때문에 -(-0.1)이 되어 +0.1이 되는 것입니다. 이차적인 답은 경사하강법의 정의에 의해서 주어진 기울기 값에 반대로 즉 -를 붙여서 가중치 업데이트를 하기 때문에 기울기에 음수를 곱하여 식에 대입하게 됩니다. 그게 공식이 -로 반영이 되어 있는 것이구요. 즉 결론적으로는 미분값에 부호를 바꾸어 기존의 가중치에 더하는 것이 새로운 가중치를 구하는 방법이 되겠습니다. 질문 감사드리고 답변이 되었으면 합니다. 감사합니다.
넵 저도 감사드려요~! 질문도 아주 좋은 질문입니다. 대략적으로 추정해보건데, 역전파 연산량일 경우, 가중치만 고려했을 경우, 전체 60,000개의 이미지를 사용할때 순전파 연산량이 대략 47억개, 편향과 여러 다른 손실계산등을 고려해서 넉넉해 잡으면 50억개가 된다고 볼수 있습니다 (영상4:18에서 '한개의 파라미터를 업데이트 하기 위해서는:' 부분). 그럴경우, 역전파도 거의 비슷한 연산량을 갖습니다. 왜냐하면 한노드씩 내려갈 때마다, 상위노드의 계산값을 그대로 사용하기 때문에 처음부터 따로 계산해주지 않아도 되고 바로 그 노드 단계에서만 계산해주면 되기 때문이죠. 그러면 역전파도 대략 50억의 연산량. 그러면 토탈 100억정도 될것입니다. 그러면 380조의 연산량에 비해 0.0025% 아주 극적으로 소량의 연산으로 신경망 학습이 가능하게 된것이죠 (힌튼 선생님을 찬양하지 않을 수가..). 덕분에 딥러닝이 가능한 이론적 기반이 완성된 것입니다. 물론 역전파 알고리즘이 소개된 것은 1980년대, 그 때는 컴퓨팅 기술이 그렇게 발전되지 않았던 때라 그 진가를 알아 볼 수 없었지만, 데이터가 쌓이고 컴퓨터 기술이 획기적으로 발전하면서 오늘날 딥러닝이 세상의 주목을 받게 되면서, 역전파 이론의 중요성은 더욱 부각된것 같습니다. 좋은 질문 감사드려요!
@@Chaterbones_official 앗 이런 저런 초보적인 실수를..너무 감사드려요ㅜㅜ. 네 Chaterbones_official님의 지적이 정확합니다!! 제가 영상을 수정하기는 좀 힘들고 고정댓글도 어찌다는지는 모르겠지만, 영상 설명란에 수정부분을 설명해놓도록 하겠습니다. 혹시 앞으로 또 다른 실수가 발견되면 언제든지 알려주세요 감사합니다!
네 좋은 질문 감사합니다. 신경망이 계산해내는 최종아웃풋의 경우,보통 1과 -1사이이거나 아니면 0-1사이의 값을 출력합니다 그 이유는 신경망 내의 값들이 정규화 normalization되고 또 결정적으로 최종 활성화함수 레이어가 시그모이드나 tanh함수를 많이 적용하기 때문입니다.
네 그 이유는 한번 순전파를 한 뒤에 나온 그 오차를 가지고 계속 역전파를 하며 하위 층에 있는 가중치를 업데이트 하기 때문입니다. 즉 한번 순전파를 하여 오차를 계산할 때, 그 오차를 만들어낸 가중치들은 기존의 w1, w2, ...., w6이고 그 가중치 벡터에서의 각각의 편미분들을 구해야 하기 때문에, 기존의 가중치값인 w5 등을 사용하는 것이 이론적으로는 맞습니다.
진짜 딱 시각화가 안 돼서 애매했던 부분 긁어주셔서 너무 감사합니다.
넵 감사합니다! 앞으로도 많은 시청 부탁드려요 😊
지금껏 들었던 오차 역전파 설명중에 가장 명쾌합니다. 진심으로 감사드립니다.
네 감사합니다. 도움이 되신다니 저도 기쁩니다. 영상 설명란에 몇가지 오류를 수정해두었으니 꼭 참고 부탁드립니다. 전체적인 알고리즘을 보는데에는 영상만으로 충분하지만, 만약 실제적인 숫자까지 고려해보신다면, 마이너한 계산상 에러들이 존재하니 댓글이나 설명란을 참고해보셔요. 감사합니다!
치타, 사자, 사람...
완벽하게 설명해주셔서 감사합니다^^^
네 도움이 되셨기를 바라며.. 시청해주셔서 감사합니다!
매우 좋은 유익한 강의입니다. 꼭추천하고 싶습니다. 감사합니다
네 감사합니다! 주변에 필요하신분들께 많은 추천 부탁드리겠습니다. 힘이 되는 댓글 감사드려요~!
그는 신인가?
진짜박수쳤다
6시간고민한거 10분안에끝내는 그는신이다
앗..네 도움이 되셨다니 저도 기쁩니다. 저도 처음에 공부할 때, 그때는 유튜브도 없었고, 변변찮은 자료도 많이 접하기 힘들던 때라..도서관에 책들을 찾고 몇날을 고심하고 손으로 그려가며 공부했던 기억이 납니다..지금은 아름다운 추억이 되버렸지만요..ㅎㅎ 암튼 과한 칭찬에 몸둘바를 모르겠습니다. 계속 유익한 영상 많이 올리도록 하겠습니다. 감사합니다. 중간중간에 계산 오류들이 있으니까 디테일한 값들을 계산할 경우에는, 설명과 댓글들을 참조하시면 좋을것 같아요.
진짜 너무너무 감사드립니다!!!! 자세하게 설명해주셔서 역전파, chain rule, 미분을 왜 곱해야되는지 이해가 되었어요 ㅜㅜ 구세주님 감사합니다!
앗 네 도움이 되셨다니 저도 너무 기쁩니다..구세주라는 표현은 제게는 너무 과분합니다ㅎㅎ 열공하셔서 좋은 결과 있으시길 바래요. 감사합니다.
대학교 머신러닝 과목에서 역전파 알고리즘이 헷갈려서 영상 시청했는데 완전 군더더기 없이 설명 잘해주셔서 개념정리가 잘되었습니다 정말 감사합니다
넵 시청해주셔서 감사합니다!!
정말 많은 강의를 보았지만 역대 최고네요.. 정말 감사합니다
넵 감사합니다!! 앞으로도 좋은 강의많이 올리겠습니다!
시각화 및 수식에 대한 디테일하고 쉬운 설명이 너무 잘되어 있는 영상 입니다. 많은 도움이 되었습니다. 감사합니다!!
넵 시청해주셔서 감사합니다!! 좋은 댓글도 감사드려요~
이렇게 하나씩 설명해주면서 이해하는 방식을 원했습니다.
정말 잘 배워갑니다 감사합니다.
네 영상 시청해주시고 좋은 댓글 감사드립니다. 앞으로도 유익한 영상 계속 올리도록 노력하겠습니다. 감사합니다!
너무 감사드립니다 진짜로......
시청해주셔서 감사합니다~!!
정말 감사합니다ㅠㅠㅠ정말 감사해요
천만에요 시청해주셔서 감사드리고, 도움이 되신것 같아 저도 기쁩니다😊
직관적으로 보여서 매우 유용한 설명이네요 감사합니다!
시청해 주셔서 감사합니다! 앞으로도 많은 시청 부탁드립니다~!!
저도 대학에서 인공지능을 강의하고 있는데, 오류역전파 알고리즘 강의할 때 학생들이 이해하기 어려워합니다. 신박AI님의 동영상 링크를 학생들에게 추천하겠습니다.
네 아무래도 역전파는 처음 배우시는 분들께는 좀 이해하기 어려운 면이 있습니다ㅠㅠ 학생분들께 추천해주신다니 감사드립니다! 저도 학생분들에게 도움이 될만한 영상 자주 올리도록 노력하겠습니다.. 감사합니다!
이틀동안 머리 싸메던거 단박에 해결되버렸습니다 감사합니다
네 도움을 드릴수 있어서 기쁩니다!! 앞으로도 유익한 영상올릴수 있도록 노력하겠습니다!
지나가던 수행평가 중인 고등학생입니다.
아무래도 고등학생인지라 모르는 부분이 많아서 질문 드립니다. 답변 부탁드립니다.
8:18 새 연결강도를 나타낸 식에서 (델타 뒤집은기호?)C는 무엇인가요? 그리고 그걸 -∂c/∂w₅로 나태낼 수 있는 이유는 무엇인가요?
8:50 편미분값을 사용하는 이유와 바로 구할 수 없는 이유는 무엇이며, 연쇄법칙을 사용한다 하였을 때 식을 저렇게 푼 이유는 무엇인가요?
11:52 o₁에 대해 편미분 할 때, 앞에 -가 붙은 이유는 무엇인가요?
네 안녕하세요 답변이 늦어서 죄송합니다. 요즘 제가 많이 바빠서 좀 답변이 느린점 양해 부탁드립니다. 바로 답변 들어가도록 하겠습니다.
8:18 새 연결강도를 나타낸 식에서 (델타 뒤집은기호?)C는 무엇인가요? 그리고 그걸 -∂c/∂w₅로 나태낼 수 있는 이유는 무엇인가요?
==> 일단 델타 뒤집은 이 기호 ∇ 는 델타와 같은 걸로 보셔도 무방합니다. 원래 고등학교 교과과정에서 배우는 미분 (요즘도 이과에서 배우는거 맞죠?) 은 일변수 함수로서 델타 기호를 쓰구요, 대학과정에 들어가면 공학수학에서는 다변수 함수와 그 미분에 관해 배우는데, 그 다변수 함수의 변화량을 저렇게 델타 뒤집은 기호를 쓰고 읽기로는 델(del) 혹은 나블라(nabla)라고 읽습니다. 하지만 그 뜻은 어쨋든 어떤 변수값 (x)이 바뀔때 함수값 (y)의 변화량으로 보시면 됩니다.
그리고 -∂c/∂w₅로 나타내는 것은 바로 편미분때문에 그렇습니다. 저 식의 의미는 다른 모든 변수들은 그대로 두고 w₅만 미세하게 변화할 때, C값이 얼마나 변화할것인가라는 뜻이구요, C값이 많이 변화하는 쪽으로 w₅를 변화시키고 또 다른 변수도 그와같은 방식으로 변화시키고 이렇게 가다보면 결국 C값이 최소가 될것이라는 경사하강법의 정의에 의하여 편미분을 사용한 것입니다. 마이너스는 기울기의 반대방향으로 가는 것을 의미하는데요, 그림으로 설명하는 것이 이해하기 더 쉽기 때문에, 자세한 것은 제가 올려드린 경사하강법 영상을 참고해주세요.
8:50 편미분값을 사용하는 이유와 바로 구할 수 없는 이유는 무엇이며, 연쇄법칙을 사용한다 하였을 때 식을 저렇게 푼 이유는 무엇인가요?
편미분값을 사용하는 이유는 다변수 함수의 변화량을 구하는 가장 기본적인 방법이기 때문입니다. 바로 구할 수 없다는 이유는, 엄밀히말하면, 바로 그 값을 구하려면 구할 수 있겠지만, 그것은 신경망 전체 연산량을 염두해두었을 경우에는 거의 쓰지 않는 방법입니다. 그 이유는 해당 영상 앞부분에 보여드린 것 처럼 결국 모든 각각의 가중치에 미세한 변화에 따른 C의 변화량을 구하여 C의 변화량이 최대가 되는 것을 찾고 가중치를 변화시키는 방법은 현실적으로 사용하지 않기 때문입니다. 그로 인해 오차역전파라는 방법을 이번 노벨상 수상자인 힌튼이 적극적으로 개발하였고, 이 오차역전파의 핵심이 바로 연쇄법칙이 되겠습니다. 미분의 연쇄법칙은 어느 한 변화량을 구하기 위해 그 변화량까지 이르는 모든 과정의 부분부분의 변화량들을 곱하여 구할 수 있다는 법칙이며, 모든 과정의 부분부분의 변화량들을 '재사용'이 가능하기 때문에, 신경망 전체의 연산과정이 극적으로 줄어들게 되어 빠른 학습이 가능하게 된 것입니다.
11:52 o₁에 대해 편미분 할 때, 앞에 -가 붙은 이유는 무엇인가요?
==> 첫번째 질문에서 답한 것 처럼, 경사하강법의 영상을 보시면 더 잘 이해가 되실것입니다.
감사합니다. 수행평가에 도움이 되셨기를 바라며..
@phdshinAI 진심으로 감사드립니다
정성스레 질문 하나하나에 긴 글로 답변해주셔서 감사합니다🥹
최고의 강의입니다.
앗 감사합니다. 과찬의 말씀이세요. 댓글들 보시면 디테일하게 에러들이 좀 있어서.. 큰틀에서 역전파 원리와 로직 측면에서는 맞지만, 그래도 실제 계산까지 해보시는 분들께는 또 혼란을 드릴지도 몰라서, 조만간 revision 영상을 다시 올려드리도록 하겠습니다. 그래도 시청해주시고, 힘이되는 댓글 달아주셔서 감사합니다!
아니 이 채널을 이제 알게 되다니!!!❤❤
네 시청해주셔서 감사합니다! 아직 많이 부족한 채널입니다. 주변에도 필요한 분들께도 많이 알려주세요 감사합니다!
이해가 너무 잘되었습니다.
섬세하게 설명해주셔서 너무 좋습니다!!!
감사합니다 ㅎㅎ
도움이 되셨다니 다행입니다. 😊
다른 강의 영상들과 다르게 직관적인 설명 감사합니다!!!!
도움이 되셨다니 다행입니다. 계속 많은 시청 부탁드려요!!
최곱니다 형님,,, 제가 좀 더 어렸을 때 이걸 봤더라면 좋았을 것을 ㅎㅎ
즐겁게 봐주셔서 감사합니다. 앞으로도 계속 유익한 영상 올리도록 노력하겠습니다 :)
감사합니다.
네 시청 감사합니다. 중간중간 계산 오류가 있으니 다른 댓글들도 참고해주시면 감사하겠습니다.
신박AI님 영상 덕분에 정말 쉽게 인공신경망에 대해 이해할 수 있었습니다. 감사합니다.
도움을 드릴수있어서 저도 기쁩니다! 앞으로도 많은 시청 부탁드립니다. 감사합니다
Back Propagation이 완벽히 이해되도록 도움을 주셔서 감사합니다!
네 영상 시청해주시고 좋은 댓글 달아주셔서 감사합니다! 앞으로도 쉽고 유익한 영상 올리도록 노력하겠습니다. 감사합니다.
놀라운 강의 입니다. 개념 쏙쏙
네 도움이 되셨다니 저도 기쁩니다. 앞으로도 많은 시청 부탁드립니다. 감사합니다!!
친절하고 자세한 설명 감사드립니다.
선생님, 영상 진짜 잘 봤습니다.
덕분에 역전파 이해에 도움이 되었습니다
감사합니다!! 😀
선생님, 저 질문이 있는데요.
처음에 역전파 알고리즘 없이는 가중치 업데이트에 시간이 매우 오래걸린다고 설명을 해주셨잖아요.
근데 역전파 알고리즘도 가중치마다 미분값을 구해야하는 건데, 계산 횟수가 기존보다 줄어드는 건가요?
네 날카로운 질문 감사합니다! 역전파 알고리즘도 가중치마다 미분값이 필요한 것은 맞습니다. 그러나 역전파 알고리즘의 핵심은 상위층에서 구한 미분값을 재활용할 수 있다는데서 연산량이 많이 줄어들 수 있게 됩니다. 만약 경사하강법만으로 가중치의 미분값을 구하려면, 가중치 한개를 미세하게 변화시킨 뒤 (나머지는 동일하게 두고), 그 가중치 하나의 변화량에 따른 손실의 변화를 계산해야 합니다. 그런 방식으로 각각의 모든 가중치를 다 일일이 계산해야 하기 때문에 연산량이 급증하게 됩니다. 그것을 체인룰을 사용하여 해결한 방법이 지금의 역전파 알고리즘입니다. 역전파 알고리즘도 경사하강법의 약점을 보완하여 세상에 나온 것인데, 말씀하신 바 처럼, 역전파 또한 모든 가중치의 미분값을 구하는 것이기 때문에 여전히 딥러닝의 세계로 넘어와서는 학습이 오래 걸리는 것도 사실입니다. 왜냐하면 역전파는 다층신경망 시절 (1980년대)에 개발된 학습 알고리즘이기 때문입니다. 현재로서는 역전파 알고리즘은 그대로 둔채, 기계의 속도만 향상시키는 방식 (파워풀한 GPU라든지..)으로 접근하고 있습니만, 만약 누군가가 역전파 알고리즘을 뛰어넘는 학습 알고리즘을 개발한다면, 튜링상 쯤은 가뿐하게 받고도 남을 뿐만아니라, 인공지능의 새시대를 열게 될지도 모르는 큰 업적입니다. 한국의 많은 연구자분들이 도전해 보셨으면 하는 바램이 큽니다 ;)
@@phdshinAI 자세한 설명 감사합니다! 👍👍👍
좋은 강의 감사합니다.
강의 내용중 역전파알고리즘 구현을 구체적으로 설명해주셨는데. 역전파알고리즘의 효과에 대한 이유가. 계산시간 단축인가요? 강의 초반에 다층신경망의 계산시간이 어마어마한 점을 보여주시고. 바로 역전파 알고리즘 해설로 넘어가서. 역전파 알고리즘의 실제적인 사용이유는 없어 가지고요. 실제적으로 역전파 사용으로 계산속도와 모델 성능이 개선 될 것 같다는 짐작이 됩니다. …….
그리고
단순퍼셉트론애서도. 오차값을 현입력값을 곱하여 다음 입력값의 새로운 연결강도를 구하는 것이 현재 구한 오차를 다시 뒤로 돌아가 응용되는 것이 역전파 처럼 보이는데요. 이것도 단순한 역전파 모양 같은데요. 이렇게 생각해도 괜찮을까요?
네 짐작하신 대로 역전파의 사용으로 계산속도가 단순히 경사하강법에 의한 학습보다 훨씬 개선된 것이 맞습니다. 단순퍼셉트론의 경우, 오차값에 현 입력값을 곱하여 연결강도를 구하는 것은 개념적으로는 비슷하지만, 역전파는 그보다 더 깊은 수학적 개념이 추가됩니다. 바로 체인룰이라는 개념입니다 (영상에서 dx/dy같은 것들이 주루룩 연결이 되어있는..그런것) 이 체인룰을 통하여, 연결강도를 업데이트 하는데 바로 이전까지 계산한 값을 재사용하여 계산할 수 있다는, 예를들면 전체가 100층이고 10층에 있는 연결 가중치를 업데이트할때 이전층 즉 11층부터 100층까지의 기울기를 다시 계산할 필요없이, 이전계산된 값을 그대로 재사용할 수 있다는 것은 상당히 효율적인 방법이며, 이 효율로 인해 단층 신경망에서 다층 신경망으로 발전할 수가 있었습니다. 요약하자면 큰 틀에서는, 즉 최종 오차를 사용하여 중간의 가중치를 업데이트 하는 점에서는 대동소이하지만, 실제 자세한 구현의 레벨에서는 체인룰 (미분의 연쇄법칙)을 통해, 상당히 효율적인 구현이 가능하다는 점이 다르다고 할 수 있습니다. 큰 틀에서 같게 보는 것도 맞고, 각론에서 차이점을 배우는 것도 중요한 것 같습니다. 좋은 질문 감사합니다!
@@phdshinAI 충분히 이해 되었습니다. 상세한 설명 감사합니다. 천천히 딥러닝을 공부하는데 많은 도움이 됩니다. 뒤늦게 시작한 AI공부가 참 흥미롭습니다.
18:34 밑의 식에 z1을 w3로 미분하면 x2가 나온다는 것은 맞는데 x2=0.3이므로 값이 달라집니다(-0.00635)
끄어... 네 맞습니다 정확한 포인트 감사합니다..! 아무래도 그간에 크고작은 오류들을 다 모아서 새로 리비전 버전을 올려야할듯 합니다ㅠㅠ 감사합니다
정말 감사합니다! 이런 쉬운 설명은 첨입니다~
네 감사합니다. 앞으로도 많은 시청 부탁드려요~
2024.08.23 감사합니다.
감사합니다!
층이 너무 많으면 1보다 작은 값을 여러번 곱하니 입력층과 가까운 변수들은 업데이트가 거의 안 될 수도 있겠군요
맞습니다 아주 정확하게 보셨습니다! 그래서 역전파만으로는 깊은층까지 학습을 위한 기울기가 전달되지 않아서 딥러닝이 가능하지 않았던 신경망의 과거 역사가 있었습니다. 그러나 이제는 여러 다양한 활성화 함수나 다른 방법들 (잔차연결등)이 개발되어 오늘날 딥러닝이 가능하게 된 것입니다. 시청 감사드려요~!
만드신 자료는 참고하여 공부하는데 많은 도움이 되고 있습니다. 한가지 질문사항은 w5를 미분한 값이 -0.1이 나오는데, 새로운 연결강도에서는에 대입할때는 +0.1으로 되어있어서 음수에서 양수로 변화되는것인지 질문드립니다. 너무 초보적인 질문이라서 죄송합니다.
안녕하세요 네 시청 감사드립니다. 말씀하신 w5를 미분한 값은 14:53부분에서 (영상에서는 -0.01로 되어 있지만 실제로는 -0.1인 부분을 말씀하시는것 같습니다) -0.1인데 대입할 때는 왜 +0.1로 바뀌어지는지에 관해 질문하신 것으로 생각됩니다. 일차적인 답은 delw5/delC에서 -0.1이 맞지만, 그것을 가중치 업데이트 할때는 공식에 보시면 -delw5/delC로 되기 때문에 -(-0.1)이 되어 +0.1이 되는 것입니다. 이차적인 답은 경사하강법의 정의에 의해서 주어진 기울기 값에 반대로 즉 -를 붙여서 가중치 업데이트를 하기 때문에 기울기에 음수를 곱하여 식에 대입하게 됩니다. 그게 공식이 -로 반영이 되어 있는 것이구요. 즉 결론적으로는 미분값에 부호를 바꾸어 기존의 가중치에 더하는 것이 새로운 가중치를 구하는 방법이 되겠습니다. 질문 감사드리고 답변이 되었으면 합니다. 감사합니다.
미적분학에서 나온 연쇄법칙이 중요하게 나올줄이야...😅
네 ㅎㅎ 뭐든 기초가 중요한듯 합니다
무엇보다 먼저 훌륭한 동영상을 만들어주셔서 정말 감사합니다~^^
역전파알고리즘을 사용했을 때 04:18 에서 설명해주신 380조번의 연산이 얼마나 감소할까요?
넵 저도 감사드려요~! 질문도 아주 좋은 질문입니다. 대략적으로 추정해보건데, 역전파 연산량일 경우, 가중치만 고려했을 경우, 전체 60,000개의 이미지를 사용할때 순전파 연산량이 대략 47억개, 편향과 여러 다른 손실계산등을 고려해서 넉넉해 잡으면 50억개가 된다고 볼수 있습니다 (영상4:18에서 '한개의 파라미터를 업데이트 하기 위해서는:' 부분). 그럴경우, 역전파도 거의 비슷한 연산량을 갖습니다. 왜냐하면 한노드씩 내려갈 때마다, 상위노드의 계산값을 그대로 사용하기 때문에 처음부터 따로 계산해주지 않아도 되고 바로 그 노드 단계에서만 계산해주면 되기 때문이죠. 그러면 역전파도 대략 50억의 연산량. 그러면 토탈 100억정도 될것입니다. 그러면 380조의 연산량에 비해 0.0025% 아주 극적으로 소량의 연산으로 신경망 학습이 가능하게 된것이죠 (힌튼 선생님을 찬양하지 않을 수가..). 덕분에 딥러닝이 가능한 이론적 기반이 완성된 것입니다. 물론 역전파 알고리즘이 소개된 것은 1980년대, 그 때는 컴퓨팅 기술이 그렇게 발전되지 않았던 때라 그 진가를 알아 볼 수 없었지만, 데이터가 쌓이고 컴퓨터 기술이 획기적으로 발전하면서 오늘날 딥러닝이 세상의 주목을 받게 되면서, 역전파 이론의 중요성은 더욱 부각된것 같습니다. 좋은 질문 감사드려요!
6:48초쯤 순전파 부분에서 bias는 원래 존재하지만 설명의 편의를 위해 생략하신 거겠죠? 제가 이해하고 있는 게 맞는지 확인코자 질문드립니다
네 맞습니다. 계산상의 편의를 위해서 생략했습니다. 좋은 질문 감사합니다!
14:53에서 계산기를 돌려 보니 -0.09999285가 나왔습니다. 혹시 반올림해서 -0.1인 걸까요?
네 그렇습니다 😊
@@phdshinAI -0.1을 -0.01로 쓰셔서 다른 계산 결과도 이상해지네요ㅠㅠ 수정하시면 좋을 것 같아요. 영상 수정이 어렵다면 고정댓글로 표시해 주시면 좋을 것 같고요
@@Chaterbones_official 앗 이런 저런 초보적인 실수를..너무 감사드려요ㅜㅜ. 네 Chaterbones_official님의 지적이 정확합니다!! 제가 영상을 수정하기는 좀 힘들고 고정댓글도 어찌다는지는 모르겠지만, 영상 설명란에 수정부분을 설명해놓도록 하겠습니다. 혹시 앞으로 또 다른 실수가 발견되면 언제든지 알려주세요 감사합니다!
체인룰 므쳐따
ㅎㅎ네 감사합니다!
정말 잘 보고 있습니다. 혹시 뉴런과 노드의 개념은 같은건가요?
네 신경망이 원래 사람의 두뇌를 모방하려는 의도에서 시작된 것이기 때문에 노드를 인공 뉴런 혹은 간단히 줄여서 뉴런이라고 부르기도 합니다만, 원래 뉴런은 뇌의 신경세포를 말하는 것이라서 필요에 따라서는 구분하여 쓸 필요도 있습니다.
역전파 신경망에 적용될 데이터의 결과 값은 항상 0 과 1 사이의 값이 되어야 하나요?
네 좋은 질문 감사합니다. 신경망이 계산해내는 최종아웃풋의 경우,보통 1과 -1사이이거나 아니면 0-1사이의 값을 출력합니다 그 이유는 신경망 내의 값들이 정규화 normalization되고 또 결정적으로 최종 활성화함수 레이어가 시그모이드나 tanh함수를 많이 적용하기 때문입니다.
@@phdshinAI 답변 감사합니다. 역전파 알고리듬도 정말 쉽게 잘 설명해 주셔서 감사합니다. 많은 도움이 되었습니다.
🙂
넵 감사합니다!
7:29 o1=sigmoid(0.6) 하면 0.64565... 인데 반올림해서 0.646으로 표기하는게 맞나요?
아 네 그렇습니다..!
@@phdshinAI 0.646으로 하면 오차가 0.125가 나와서 뭐가 맞을지 몰라서 댓글 남겼습니다. 답변 감사합니다
@@doyeon1767 네 맞습니다. 오차도 한 0.001값정도 차이가 나게 됩니다. 사소해보여도 디테일한 것에 집중하는 것은 아주 좋은 습관이라 생각됩니다. 역전파 강의가 생각보다 디테일한 오류가 많네요..; 언젠가 한번 다시 revise해야 할것도 같습니다..ㅠㅠ
실화냐? 이거듣고 에이플나왔다
오 축하합니다! 열심히 공부한 성과가 있으셔서 저도 기쁩니다 ㅎㅎ
왜 w1을 업데이트할 때, w5를 업데이트된 값을 대입하지 않고 기존의 w5를 대입하나요??
네 그 이유는 한번 순전파를 한 뒤에 나온 그 오차를 가지고 계속 역전파를 하며 하위 층에 있는 가중치를 업데이트 하기 때문입니다. 즉 한번 순전파를 하여 오차를 계산할 때, 그 오차를 만들어낸 가중치들은 기존의 w1, w2, ...., w6이고 그 가중치 벡터에서의 각각의 편미분들을 구해야 하기 때문에, 기존의 가중치값인 w5 등을 사용하는 것이 이론적으로는 맞습니다.