2014-12-20 2 views
3

서문 : 현재 ~ 83.5 개의 이미지에 ~ 18.5k 이미지가 있기 때문에 ANN에 대해 배우고 있습니다. 실시간으로 거의 동일한 이미지를 인식하도록 ANN을 교육하는 데 사용됩니다. 나는이 책의 이미지 예제를 따랐지만, 저에게는 효과가 없습니다. 그래서 나는 무언가를 놓쳤을 가능성이 있으므로 처음으로 돌아갈 것입니다.ANN 가르치기 추가 방법

나는 Encog XOR 예제를 가져와 100 이하의 숫자를 추가하는 방법을 가르쳐주었습니다. 지금까지는 훈련 후 정확한 입력을 위해 결과가 혼합되었습니다.

입력 (100에서 정규화) : 0+0, 1+2, 3+4, 5+6, 7+8, 1+1, 2+2, 7.5+7.5, 7+7, 50+50, 20+20.

2+4=7.75 
6+8=10.65 
4+6=9.02 
4+8=9.91 
25+75=99.99 (!!) 
21+21=87.41 (?) 

I : 체리 고른 보이지 데이터로부터

0+0=1E-18 (great!) 
1+2=6.95 
3+4=7.99 (so close!) 
5+6=9.33 
7+8=11.03 
1+1=6.70 
2+2=7.16 
7.5+7.5=10.94 
7+7=10.48 
50+50=99.99 (woo!) 
20+20=41.27 (close enough) 

: 출력은 숫자 입력 데이터에서 10 만회, 일부 샘플 출력 후 훈련 100

에 다음 정규화 첨가 레이어, 뉴런 번호, [탄력있는 | 뒤로] 전파가 뒤죽박죽이다. 그러나 그것이 좋든 나쁘 던지 완전히 확신 할 수는 없다. 위의 데이터에서 레이어는 2, 6, 1입니다.

이 판단을위한 기준이 없습니다. 이게 정상인가? 입력이 충분하지 않은가요? 내 데이터가 완전하지 않거나 무작위입니까, 아니면 너무 가중치가 있습니까?

+0

그래서, 당신은 jpg를주고, 2 + 2로 그려지며 ANN이 응답 4를 줄 것을 기대합니까? –

+0

안녕하세요, 당신이 코드를 공유하는 경우 gr8 것입니다. –

답변

0

처음으로이 질문을 던지는 것은 아닙니다. ANN에 추가 할 것을 가르치는 것이 논리적 인 것처럼 보입니다. 논리 게이트로서 기능하도록 가르칩니다. 왜 가산/곱셈 연산자가 아닙니다. ANN이이 상황에서 얼마나 잘 작동하는지 직접 확인하기 위해 조사하지 않았기 때문에이 질문에 완전히 대답 할 수 없습니다.

추가 또는 곱하기를 가르치는 경우에는 선형 출력 및 숨겨진 레이어가없는 최상의 결과를 얻을 수 있습니다. 예를 들어 추가하는 방법을 배우려면 두 개의 가중치가 1.0이고 바이어스 가중치가 0이되어야합니다.

linear ((input1 * w1) + (input2 * w2) + bias) = ​​ 이됩니다. 선형 ((input1 * 1.0) + (input2 * 1.0) + (0.0)) =

시그 모이 드 또는 tanh를 교육하는 것이 더 문제가 될 수 있습니다. 가중치/바이어스 및 숨겨진 레이어는 기본적으로 위와 같은 추가 정보로 돌아가려면 기본적으로 시그 모이 드를 실행 취소해야합니다.

저는 신경망이 패턴을 인식하고 있고, 실제로 수학을 배우지 않고 있다는 것이 문제의 일부라고 생각합니다.

+0

ANN에 대한 제한된 연구에서 의미가 있습니다. 첫 번째 실행 (이미지 인식)이하지 않았기 때문에 단순히 기본 작업을하고 싶었 기 때문에 추가하기로 결정했습니다. 기본 무언가를 얻으려면 내 최종 게임으로 전환 할 수 있습니다. 무엇을 권하고 싶습니까? – joe

0

ANN은 모든 산술을 포함하여 임의의 기능을 습득 할 수 있습니다. 예를 들어, N 개의 숫자의 추가가 깊이 2의 다항식 크기 ​​네트워크에 의해 계산 될 수있는 proved이었습니다. NN 산술을 가르치는 한 가지 방법은 이진 표현을 사용하는 것입니다 (즉, 100에서 정규화 된 입력이 아니라 각각을 나타내는 입력 뉴런 세트 하나의 2 진수 및 출력에 대한 동일한 표현). 이렇게하면 추가 및 기타 산술을 구현할 수 있습니다. 학습 산수에 사용되는 ANN 토폴로지에 대한 자세한 설명과 설명은 this paper을 참조하십시오.

추신. 이미지 인식 작업을 원할 경우 원본 데이터 세트로 연습을 시작하는 것은 좋지 않습니다. MNIST와 같이 잘 연구 된 데이터 세트를 시도해보십시오. 정확히 어떤 알고리즘이 구현되었는지에 따라 결과가 달라질 수 있습니다. 고전적인 예제를 마스터 한 후에는 자신의 데이터로 작업 할 수 있습니다.

0

나는 컴퓨터로 하여금 증식하는 법을 배우게하고, 이것에 관한 나의 진전을 공유하게하는 데모의 한가운데있다. Jeff가 선형 접근과 특히 ADALINE을 사용하도록 제안했듯이.

 

    1 x 5 ~= 5.17716232607829 
    2 x 5 ~= 10.147218373698 
    3 x 5 ~= 15.1172744213176 
    4 x 5 ~= 20.0873304689373 
    5 x 5 ~= 25.057386516557 
    6 x 5 ~= 30.0274425641767 
    7 x 5 ~= 34.9974986117963 
    8 x 5 ~= 39.967554659416 
    9 x 5 ~= 44.9376107070357 
    10 x 5 ~= 49.9076667546553 

는이 데모에 관심이 있다면 알려주세요 : 내 프로그램 "알고"이 순간 (5)에 의해 번식하는 방법 이것은 내가 얻고 출력됩니다. 나는 기꺼이 나누겠습니다.