신경망 구체적인 구현 질문드립니다.
신경망을 구현해보려고 하는데 학습하려고 하는 것이 7개의 입력에 대해 4개의 출력을 나타내는 것입니다.
제가 생각하는 것이 맞는지좀 봐주세요.
인풋 데이터는 int형 7개입니다.
인풋 노드는 7개가 될 것이고 출력이 4개가 되려면 그 올바른 출력에 대해 7개의 인풋을 각각 학습시켜줘야 하므로 학습하는 함수? 작업은 4개가 되고 각각 하나의 출력을 하도록 해야할 것 같습니다.
4, 5, 5, 6, 7, 8, 2 라는 입력에 대해 4개의 원하는 출력 중 어떤 출력은 5를 원하고 어떤 출력은 3을 원하면 학습을 할 때 역전파알고리즘으로 피드백해줘야 하는 값은 출력이 5일 때와 3일때가 다르니까 각각 다른 시그모이드?함수를 써줘야 할 것 같습니다.
하나의 출력에 대해 100번씩 학습시킨다면 4개의 출력을 원하고 있으니까 7개의 인풋 데이터에 대해 100번씩 4번 총 400번의 학습이 필요할 것 같습니다.
여기까지가 우선 생각하고 있는 부분이고 다른 궁금한건
시그모이드 함수를 쓰면 출력값이 0~1사이 밖에 안 나오는데 제가 원하는 출력이 0~100사이의 값일 때 어떻게 조절해줘야 하나요?
단순이 100을 곱해주면 될지, 시그모이드 함수를 쓰지 말고 제가 학습하려는 것에 알맞은 학습 함수를 따로 만들어줘야하는지...
마지막으로
위와 같은 7개의 인풋, 4개의 아웃풋에 대해 신경망을 설계한다면 인풋 레이어는 7개, 아웃풋 레이어는 4개가 될 텐데 히든 레이어는 몇층, 층당 몇개를 생성해주는지 어떻게 정할까요?
신경망 검색해서 나온건 대부분 봤는데 이걸 직접 코딩하려니 애매한 부분이 아직 많네요.
맘같아선 1:1 과외라도 받고싶은 기분 ㅜㅜ
실례지만
샘플 코드를 올려주시죠
7에서 100이나오고 무슨말씀인지 ㅠㅠ
이제 구현하려고
이제 구현하려고 하는데 저렇게 하는게 맞는지 물은거예요
....
각각의 뉴런에 다른 출력함수를 사용하는게 아니고
각각의 뉴런으로 가는 길의 가중치와 입력값을 곱한것들을 더해주고 출력함수(시그모이드)로 출력하면 됩니다.
그런데 값이 크니(0~1보가 크니..)일반적인 역전파 알고리즘으로는 안될거같고.. 그 이상은 잘 모르겠네요...
저두 별로 지식이 없어서 일반적인 역전파 알고리즘을 변형하여 큰 값을 처리하는걸 해보려다가 안되서....
참고로 지금 입력뉴런과 출력뉴런만으로 연산을 하시려는거 같은데 비추입니다... 단순 XOR연산도 못해요...
최소 1갸의 은닉층은 있어야 합니다.
죄송하지만 힌트점
대화내용이 무엇입니까?
세포복제인가요?
뉴런칩 작업중이신가요?
정답:: ??
http://en.wikipedia.org/wiki/
http://en.wikipedia.org/wiki/Artificial_neural_network
댓글 달기