현실감각 0% :: '분류 전체보기' 카테고리의 글 목록 (16 Page)

컴퓨터 관련 2009. 9. 7. 20:19

MATLAB을 이용한 인공신경망(neural network) 소스



오일석씨가 지은 패턴인식 책 보고 완성.
Digital Image Processing과 Neural Networks for Pattern Recognition을 보며 신나게 해딩하던 차에 이런 좋은 한글책을 ^-^ 세종대왕 만세!!
귀찮아서 그냥 대충 코딩했기 때문에 최적화 뭐 이런거 하나도 안되어있음. 매트랩이란 녀석이 최적화한다고 속도가 엄청 빨라지는것도 아니고..ㅋ


학습값
I =
    0.8112    0.0193    0.0839    0.9748
    0.6513    0.2312    0.4035    0.1220
    0.2684    0.2578    0.3317    0.1522
    0.3480    0.1217    0.8842    0.0943
    0.9300    0.3990    0.0474    0.3424
    0.7360    0.7947    0.5449    0.6862
    0.8936    0.0548    0.3037    0.0462
    0.1955    0.7202    0.7218    0.8778
    0.5824    0.0707    0.9227    0.8004
    0.2859    0.5437    0.9848    0.7157

목적값
T =
     1     0     0
     1     0     1
     1     1     0
     0     0     0
     1     1     1
     0     0     1
     0     1     1
     0     1     1
     1     1     1
     1     1     1

입력층과 은닉층간의 가중치 u
u =
    0.9628   -1.0548   -1.4900    4.6783    0.3130    1.9933    4.3942    1.9676    0.0856   -1.4651    1.0196    0.1796    0.2629
   -3.6112   -0.8629   -0.5201   -0.9986    4.4307    1.1881   -3.1616    2.9116    0.9480   -1.5138    2.3744   -1.2099    0.0539
    2.4828   -0.1772    0.9085   -0.7226   -0.9081   -0.1228   -4.3781    3.3554    0.2269   -0.0148    3.1880   -0.5654   -0.1098
   -6.2477   -0.3111   -2.9886   -1.7098    1.8842    0.0702   -3.0357   -1.5709    0.1525   -0.2013   -2.1933   -0.6751    0.2851
    0.0799    0.6906    0.1948   -0.8849   -3.8720   -0.8651   -1.5374   -0.7111   -0.4327    0.9893    1.1455    0.7605    0.4394

은닉층과 출력층간의 가중치 v
v =
   -5.1439   -2.6505   -0.6496
    0.6622    0.9621   -1.2617
    0.0273   -1.7237   -1.9407
    1.7515   -3.6440    1.6147
   -4.5748   -2.1589    3.2406
   -0.7716   -1.4656    1.5587
   -1.5545    5.2279    0.7999
   -1.9958    1.5138    4.1915
   -0.8095   -0.1873    0.4061
    1.3743    1.2738   -1.5010
   -1.4723    2.6831    2.4242
    1.4935   -0.0126   -0.7687
    0.5689    0.3002   -1.2387

학습값을 그대로 이용하여 실험하였을때의 결과
output =
    0.9999    0.0009    0.0036
    0.9054    0.0471    0.9537
    0.9892    0.8976    0.0049
    0.0087    0.0011    0.0035
    0.9840    0.9504    0.9992
    0.0034   -0.0008    1.0000
    0.0082    0.8939    0.9774
    0.0152    0.9851    0.9980
    0.9970    0.9724    0.9415
    0.9000    0.9943    0.9848


귀찮아서 학습값을 실험데이터로 돌렸는데.. 뭐 결과는 나쁘지 않았다.
인터넷에 떠도는 인공신경망 소스들 대다수가 출력값이 1개만 제대로 나오는데 비해 3개를 하던 10개를 하던 만족할 만한 결과가 나왔으니 뭐...ㅋ

파일은 아래 첨부


파일설명
   nt : 인공신경망 트레이닝 함수.  ex : [u v] = nt(I, T);
   nr : 인공신경망 테스트 함수.  ex : output = nr(I, u, v);
   sig, sigp : 시그모이드 함수.



뻘짓거리 2009. 9. 2. 16:27

연구실 홈페이지 완성



연구중에 시간이 좀 남길래 어제 저녁부터 만들기 시작해서 오늘 완성 ㅋㅋ
뭐 디자인하기 귀찮아서 대충 만들었는데... 무섭다는 사람도 있고, 잘했다는 사람도 있고 ㅋㅋ



접속은 여기로 ㅋ

http://vision.ssu.ac.kr/index.html



컴퓨터 관련 2009. 8. 31. 21:23

isodata 클러스터링 알고리즘 완성



드디어 isodata 클러스터링 알고리즘 완성!!
솔찍히 제대로 만들었는지는 모르겠다. 뭐 프로젝트에 쓸 알고리즘으로는 이걸로도 충분할듯 하니...ㅋㅋㅋ



결과화면으로는  뭐 뭐가뭔지 잘 모르겠지만 대충 덩어리진것들만 봐선 대체적으로 잘 된듯하다.
일단 기본적으로 3차원 클러스터링용으로 만든것이며, 실험데이터는 16차원짜리 내가 쓰는 데이터를 받아 한거지만 뭐 대충 코드보면 언제든지 수정 가능할듯 싶고...
입력할 값들로는 K, tN, tS, tC, Kmin, Kmax가 있는데... 각각의 설명을 대충 하자면

K = 최초 클러스터 개수
tN = 클러스터가 이루어지기 위한 데이터의 최소개수
tS = 최소 분산 한계
tC = 클러스터 i와 클러스터 j간의 최소 거리
Kmin = 클러스터의 최소 개수
Kmax = 클러스터의 최대 개수

값을 대충 입력해서 돌릴경우 결과는 안드로, 시간은 지구종말의 순간까지 무한루프를 돌 수 있으니 루프가 돈다 싶으면 이러저러하게 바꿔가면서 넣으면 된다.

실험데이터는 말 그대로 16차원의 안드로 데이터를 사용했으므로... 소스를 그대로 이용하여 돌려보려면 대충

for i = 1:1000
for j = 1:16
temp(i,j) = rand;
end
end

이렇게 대충 데이터를 만든후에 입력하면 된다.


소스는 여기를 클릭!