역전파는 파괴적 망각이라는 현상이 존재함
어떤걸 먼저배우고 나중에 다른걸 배우면 먼저배운게 사라져버림
이걸 어떻게 해결하냐면
입력, 신경망, 출력 이 세가지 값이 필요한데
이 (입력A, 신경망, 출력B) 이라는 하나의 뭉치가
바로 신경망의 입력에 들어가는거임
신경망의 출력은 입력A와 출력B를 넣은상태로 역전파 돌린 신경망이 출력이 되는거임
그러니까
입력1로(입력A,신경망,출력B)를 주고
출력1로(입력A와 출력B로 역전파를 적용한 신경망) 을 주는거임
이렇게 주어진 입력1과 출력1로 역전파를 적용한 신경망을 구해내는거임
이러면
(입력A, 신경망, 출력B)로부터 (입력A와 출력B로 역전파를 적용한 신경망) 를 얻어내는 신경망을 얻을거고
그 신경망은 아마도 역전파 알고리즘이 될것임
여기까지가 기본적인 설명이고
파괴적 망각을 어떻게 없애냐면
입력1=(입력A, 신경망, 출력B), 출력1=(입력A와 출력B로 역전파를 적용한 신경망)
입력2=(입력C, 출력1, 출력D), 출력2=(입력A,C와 출력B,D로 역전파를 적용한 신경망)
간단히 설명하자면
역전파를 적용할 신경망의 입력과 출력에 신경망과 입력과 출력을 넣는다는거임
RNN, LSTM
어쩜 레퍼토리가 늘 똑같냐 글만 봐도 누군지 알겠네 - dc App
내가 누군데?
허구헌날 지능 타령하는 애인지 전 글에서 알아봤어야 하는건데 ㅋㅋ - dc App
그게 누군데
역전파는 그런게 아님. 역전파는 출력에서 가중치를 업데이트 할 방향을 구하는 방법일뿐. 님이 무슨 말 하는지 잘 이해 못하겠음 ㅜㅜ
신경망 자체를 출력으로 사용한다는거
나도 몇 년전에 network updating network를 구상한 적이 있었어서 신경망 자체를 출력으로 사용한다는 얘기 자체는 이해했어. (기술적 어려움이 있긴 함) 근데 문제는 망각이라는게 단순히 역전파문제가 아니라서 어려워. 새로운 문제를 잘 풀게 가중치를 업데이트하면 새로운 가중치 분포에서 기존에 잘 풀던 문제가 잘 안풀리는 경우가 있는게 문제인데, 역전파는 가중치를 업데이트하는 방향을 알려주는 나침반일뿐, 문제가 되는건 가중치의 변화 그 자체임.
(기존내용을 학습한 신경망과 새로운 입력과 출력)을 입력으로 넣고 출력으로(기존내용과 새로운내용을 둘다학습한 신경망)을 넣고 역전파 적용하면, 기존내용을 학습한 신경망에 새로운 입력과 출력을 학습시키는 게 가능한 방법(신경망)이 나올거임
내가 말하는 문제라는건 '기존에 학습한 내용'을 어떻게 알거냐는 것임. 새롭게 학습하면서 기존 내용 다 알려줄거면 님이 말한게 필요 없어짐. (학습 데이터셋에 새로운 데이터 집어넣으면 그만이라서.) 그래서 '진짜 문제'는 기존에 학습한 내용이 뭔지 모르는 상태에서 기존 문제를 잘 풀게 가중치를 업데이트하는건데, 이게 어렵다는거임. 역전파 알고리즘의 문제가 아니기도 하고.
기존내용을 학습한 신경망에 새로운 내용을 학습시킬수 있으면 문제해결아님?
그래서 몇 년전에 생각했던 구상이 뭐냐면 인공 신경망의 가중치를 이미지화하는거임. 가장 큰 값의 가중치를 검은색으로 놓고, 가장 작은 값의 가중치를 흰색으로 둔 다음에, 배열 관계 생각해서 각각의 가중치를 이미지처럼 배열하면 그림이 나올거 아님? 그리고 기존처럼 역전파 알고리즘 적용하면 어느 지점의 가중치를 업데이트 해야하는지가 나올텐데, 1. 기존 가중치 그림 2. 업데이트 되는 가중치 그림 을 가지고 3. 새로운 가중치 그림 을 산출해주는 인공신경망을 구상한적이 있었음.
기존내용을 학습한 신경망은 당연히 기존내용을 이미 알고있는게 당연한거 아니냐..
'기존 내용'이 뭔지를 모르는게 문제여. 내 생각에 이걸 우회하는 방법은 여러 지역 임의로 샘플링해서 1. 무언가 패턴이 있는걸로 감지되면 학습된 영역 2. 무작위 패턴처럼 보이면 비학습 영역 이렇게 감지해서 비학습 업데이트 하는 방법도 있을 것 같긴한데, 연구가 항상 그렇듯이 해봐야 알듯.
기존내용은 학습할때 썼던 입력과 출력 그리고 그사이의 신경망 아님?
나를 병신이라고 생각하겠지만 난 솔직히 내생각이 뭐가 잘못됬는지 이해가아됨
님 병신이라고 생각 안함. 나도 설명을 잘 못하는 편이라 뭐.. 어떻게 설명해야 할지 모르겠네. 물론 내가 틀릴 수도 있고.
궁금한게 있는데 입력1로 (입력A,신경망,출력B)를 주고 출력1로(입력A와 출력B로 역전파를 적용한 신경망) 을 주고 역전파를 적용하면 입력1과 출력1사이의 신경망은 어떻게 됨?? 신경망 자체가 역전파 알고리즘과 동일해지나? 아니면 역전파가 아닌 다른 알고리즘이 신경망에 들어있게됨?
아마 비슷해질거임. 다만 알고리즘과 AI 자체의 차이가 있어서 언제나 모든 문제에 있어서 똑같지는 않을거고, 훈련된거랑 비슷한거에 대해서는 꽤 비슷할듯?