2010-04-21 7 views
2

편집 :신경 네트워크

더 날카로운 질문 : 는이 softmax의 유도체는 내 그라데이션 하강 무엇을 사용할 수 있나요? 그래서 기다려주십시오 :


내가하는 과정에서 현재입니다


는이 과정에 대한 더 많거나 적은 연구 프로젝트이며, NN에 대한 이해는 아주/매우 제한되어 입력 데이터 집합을 검사하고 각 분류의 확률/가능성 (5 가지 분류가 있음)을 출력하려고하는 신경망을 구축합니다. 당연히 모든 출력 노드의 합계가 1이되어야합니다.

현재 두 개의 레이어가 있으며 숨겨진 레이어를 10 개의 노드로 설정합니다.

나는 구현

의 두 가지 종류를 내놓았다
    출력 활성화를 내가 사용하고 모두 숨겨진 레이어 및 출력 활성화

에 대한

  • 소프트 맥스에 대한 숨겨진 레이어 활성화, 소프트 맥스
  • 물류 S 자 그라디언트 디센트를 사용하여 숨겨진 노드의 가중치와 출력 노드의 가중치를 조정하기 위해 로컬 최대 값을 찾습니다. 나는 이것이 S 자형에 맞는 것을 확신합니다. 나는 softmax (또는 그라데이션 강하를 모두 사용할 수 있는지 여부)에 대해 조금 연구 한 후에 대답을 찾을 수 없으며 직접 파생물을 계산하기로 결정했으며 softmax'(x) = softmax(x) - softmax(x)^2을 얻었습니다 (크기 n의 열 벡터를 반환 함).). 나는 또한 MATLAB NN 툴킷을 살펴 보았습니다. 툴킷에서 제공하는 softmax의 파생물은 크기 nxn의 정사각형 매트릭스를 반환했습니다. 대각선은 손으로 계산 한 softmax '(x)와 일치합니다. 출력 행렬을 해석하는 방법을 모르겠습니다.

    각 구현을 학습 전파 속도 0.001과 1000 회 반복 전파로 실행했습니다. 그러나 내 NN은 입력 데이터 집합의 모든 하위 집합에 대해 5 개의 출력 노드 모두에 대해 0.2 (균등 한 분포)를 반환합니다.

    내 결론은 :

    • 나는 하강의 내 그라데이션이 잘못 수행되는 것을 상당히 확신하지만, 나는이 문제를 해결하는 방법을 모른다.
    • 아마도 내가 사용하고 있지 않다 충분한 숨겨진 노드
    • 는 아마도 내가 어떤 도움을 크게 감상 할 수

    의 수를 증가한다!

    내가 여기에서 찾을 수 있습니다 함께 일하고 데이터 집합은 (클리블랜드 처리)

    : http://archive.ics.uci.edu/ml/datasets/Heart+Disease

  • +0

    나는 더 많은 지적 된 질문을 내 게시물 상단에 추가했습니다. 교수님 께 도움을 청하는 시도를했지만, 그에게서 소식을 듣지 못했습니다. 이것은 물론 코스의 범위를 벗어납니다. – Cambium

    +0

    내 코드에서 어리석은 실수가 있었지만 내 softmax 파생 상품이 잘못되었다는 생각에 너무 집중했습니다. Arg! – Cambium

    답변

    5

    당신이 사용하는 그라데이션 실제로 제곱 오차와 동일합니다 : 출력 - 대상입니다.이것은 처음에는 놀라운 보일 수도 있지만, 트릭은 다른 오류 기능을 최소화하는 것입니다 : 수의

    softmax error

    (- \sum^N_{n=1}\sum^K_{k=1} t_{kn} log(y_{kn})) 
    
    로그 자연 로그는

    는, N 훈련 예제의 수를 묘사하고 K 클래스 (따라서 출력 레이어의 단위). t_kn은 n 번째 트레이닝 예제에서 k 번째 클래스의 이진 코딩 (0 또는 1)을 나타냅니다. y_kn 해당 네트워크 출력.

    그래디언트가 정확한지 확인하는 것이 좋은 운동 일 수 있습니다.

    문제점 : 숫자 차별화로 그라디언트가 올바른지 확인할 수 있습니다. 함수 f와 f와 f '를 구현했다고합시다. 다음은 유지해야합니다

    numerical gradient of the softmax

    (f'(x) = \frac{f(x - \epsilon) - f(x + \epsilon)}{2\epsilon} + O(\epsilon^2)) 
    
    +2

    업데이트 된 사진을 stackoverflow에 업데이트;) –

    0

    오픈 소스 욕망 시뮬레이션 프로그램 sites.google.com/site/gatmkorn에서 찾아보세요. Windows 버전의 경우/mydesire/neural 폴더에는 여러 softmax 분류기가 있으며 일부는 softmax 관련 그라디언트 디센트 알고리즘을 사용합니다.

    예제에서는 간단한 문자 인식 작업에 적합합니다.

    ASee 또한

    콘, GA : 고급 동적 시스템 시뮬레이션, 와일리 2007

    GAK 링크에서

    관련 문제