반응형

Computational Intelligence 23

뉴럴네트워크를 배우면서..

뉴럴네트워크는 그 목적에따라 단층 네트워크도 있고 다층 네트워크도 있는데, 멀티레이어 뉴럴 네트워크랑 딥러닝이랑 차이점을 모르겠다. 아래의 페이지를 보니, 뭔가 학습 수법이 바뀐거 같은데, 공부를 좀 해야겠다. http://neuralnetworksanddeeplearning.com/index.html 딥러닝도 뉴럴네트워크의 일종으로, 레이어 수가 일반적인 뉴럴 네트워크 보다 굉장히 많아서 딥러닝으로 불린다.

기계학습 (Machine Learning)

기계학습이란, 기계에 어떠한 일을 부여할 경우, 기계 스스로의 학습에 의해 그 문제를 해결 하도록 하는 것이다. 기계학습은 아래와 같이 두 종류로 나뉠 수 있다. 1. Supervised Learning (지도 학습, 教師あり学習) - 학습 데이터가 입력값 및 기대결과에 미리 포함되어 있는 방식. - 학습을 행하는 프로세스 중에 지도값이 알려져 있고, 입력값으로 부여된다. - 자율학습에 비해, 학습이 대체적으로 빠르고 정확한 편이다.예) 뉴럴네트워크, 다중 계층 퍼셉트론(MLP), Counterpropagation network 등 2. Unsupervised Learning (자율 학습, 教師なし学習) - 해결하고자 하는 일의 목표값이 주어지지 않는다. - 입력데이터에 대한 통계적인 특성만을 이용 할 ..

최소 평균 제곱법 (Least Mean Squares Method, Widrow-Hoff Learning) [두번째]

최초작성일:2016.6.20 이전의 글에 이어서 프로그래밍 연습을 해 보는 것이니, 이전글을 참고 하고 싶은 분은 아래의 링크를 따라가 주길 바란다.(이전글의 링크: 최소 평균 제곱법 (Least Mean Squares Method, Widrow-Hoff Learning) [첫번째]) 위와같이 A와 B의 집단을 가로지르는 직선 y에 대한 함수가 있다고 가정할때 그 값을 구하기 위한 Adaline의 적용례 이다. 위의 그래프를 기준으로, 두가지 입력 A,B에 따라서 출력값이 달라져야 한다. 따라서, 선분 y의 학습에 따른 그룹을 분류하기 위해, A: 1, B: -1로 하여 두 그룹을 분리한다. 먼저 학습을 위한 뉴런을 디자인 하자면 아래와 같이 나타 낼 수 있다. 위의 뉴런구조에 대한 출력값의 계산식은 아..

최소 평균 제곱법 (Least Mean Squares Method, Widrow-Hoff Learning) [첫번째]

최초작성일:2016.6.20 아래의 그림에 대해, 점선안에 있는 관계도가 있다고 가정하자.(뉴럴네트워크에서는, 사람의 신경 구조와 같이, 자극의 입력에 대한 출력 덩어리를 뉴런이라고 부른다.) 여기서는 세개의 입력에 대해서, 세개의 가중치를 적용한 뒤에 하나의 출력을 내 보낸다.이와 같은 구조에서의 "최소 평균 제곱법" 에 대한 알고리즘의 유도를 여기서 해 보려고 한다.(내가 공부하면서 정리한 것이므로, 뭔가 부족 할 수도 있다... ) 우선 학습 가중치를 갱신하기 위한 수식을 작성한다. 위와같이 가중치의 변화량은 현재(t)의 가중치w 에 한스텝 전(t-1)의 가중치 w를 빼 주는 것과 같다. 가중치를 조절하기 위해서 경사하강법을 이용해서 수식을 유도한다.우리가 원하는 것은, 총 평균 제곱의 합을 최소하..

뉴럴 네트워크의 흐름

1943년: McCulloch 와 Pitts의 뉴론 모델의 제안 1949년: Hebb의 학습 제안, 실제의 신경회로를 조사하여 뉴론간의 결합강도는 뉴론의 입력과 출력이 함께 활성되었을 경우에 강화되는 방법. 1957년: Rosenblatt는 최초로 패턴인식에 대한 학습 모델을 제안하였다. (퍼셉트론의 시작) Rosenblatt의학습은 네트워크의 입력패턴을 분류하여, 그 결과를 교사 데이터와 다른 값이면 연결 가중치를 수정하는 방식이다. 그러나, 완전식 식별되지 않는 과제에 대해서는, 계산횟수를 늘려도 학습이 되지 않는 경우도 생긴다. 1960년: Widrow 와 Hoff의 Adaline(Adaptive Linear Neuron)의 제안, 최소자승법의 아이디어를 이용한 뉴론의 학습법.

경사하강법 (Steepest descent method, 最急降下法)

"경사하강법"이란 함수의 기울기로 최소값을 찾아내는 알고리즘으로, 뉴럴네트워크를 공부하면서 나오는 기초 알고리즘 중의 하나이다. 값을 찾기위한 경사하강법의 수식은 아래와 같다. 여기서 (nabla) 는 벡터공간에 대한 스칼라 장의 구배를 의미한다. 간편한 프로그래밍의 예를 들기위해 사용을 할 것은 2차함수이므로, x항에 대한 편미분 항 이외는 무시 할 수 있다. 따라서 아래와 같이 간략하게 나타낼 수 있다. 여기서 는 학습계수로써, 값을 크게 할 수록 반복계산 횟수는 짧아지지만, 결과값에 최대한 근접하기 위해서 결과가 진동을 하게 된다. 이와는 반대로, 값을 작게 하면 결과는 좀 더 정확하게 나오지만, 값을 찾기까지의 시간이 더 오래걸린다. 따라서, 자기가 해결하고 싶은 상황에 따라서 값을 구하는 것을 ..

유클리드 호제법 두번째 (Euclidean algorithm)

유클리드 호제법을 이용한 최대공약수 구하기 두번째 : 나눗셈을 이용하여 구하기. 일단 증명은 위키페디아 참조... 1. 두개의 수치를 입력2. i÷j의 나머지를 k라고 둔다.3. i=j, j=k로 대입을 한다. 4. i가 0이되면 루프를 벗어난다. Colored By Color Scripter™1234567891011121314151617181920212223242526272829//// main.c// Euclidean_algorithm//// Created by robot on 2014/05/21.// Copyright (c) 2014年 Rocke. All rights reserved.// #include int main(int argc, const char * argv[]){ int i,j,k; p..

반응형