컴퓨터 관련
2011. 12. 5. 10:16
인공신경망(Neural Network) c# 코딩
요즘 인공신경망이 갑자기 필요한데 개발 플랫폼인 C#으로 코딩해놓은것이 없어서 예전 매트랩 소스보면서 다시 코딩..
위 화면은 시작하면 나오는 화면..;; 테스트 해봐야 하는데 아직 특별한 데이터가 없어서 색상과 당도, 산도를 이용하여 과일과 채소를 구분하는 프로그램(?) 작성ㅋㅋ;
좌측 학습 영역에 객체의 특징데이터를 입력하고 종류를 결정한 후 학습을 누르면 자동 학습된다.
특징 데이터 입력은 0~1 사이의 소수를 입력받는다... 사과를 예로 들면
0부터 255 사이의 값을 갖는 RGB 값이 208, 175, 106으로 나왔다. 이것을 0~1 사이의 값으로 정규화하면..
0.8156, 0.6862, 0.4156 의 값으로 변환 가능하다.
이것들을 각각 RED, GREEN, BLUE 칸에 입력하고,
당도와 산도는... 설탕의 당도를 1로 잡고, 식초의 산도를 1로 잡았을때 비교해서
대충 사과는 많이 달고 약간 시큼하니까 0.7, 0.5정도로 넣었다...-_-;;
그 다음에.. 종류에는 과일일 경우는 1, 채소일 경우에는 0을 넣자.
(반대로 해도 상관은 없다; 알아볼수만 있다면;;)
이런식으로 특징값을 수치화하여 각각의 학습 데이터들을 입력한 후, 아래의 학습 버튼을 누르면 자동으로 학습되며, 그 가중치 값은 프로그램이 설치된 폴더의 u.txt, v.txt에 각각 저장된다.
u.txt와 v.txt가 제대로 생성되었다면 학습 성공!!
학습이 끝났다면 이제부터 인식이 가능하다. 오른쪽 메뉴의 인식 영역에서 아무값이나(그래도 0부터 1사이의 소수만 가능;; 아무값이나 입력했다가 문제생겨도 책임안짐;;) 입력하고 인식을 눌러보자.
입력된 특징값을 바탕으로 과일인지 채소인지를 구분하여 출력할 것이다.
결과값이 1에 가까우면 과일, 0에 가까우면 채소가 되겠다~
코드는 여기~!
질문은 메일로~!
chabert1@nate.com