머신러닝 283

4-3 XOR 로직 뉴럴 네트워크 모델링, back-propagation 계산, Hypothesis 3D Graphic Visualization

자연계의 신경망은 이론적인 신경망 보다 말할 수 없이 복잡한 양상을 보이겠지만 특히 2개의 입력 문제를 다뤄야 하는 AND, OR 또는 XOR 로직 계산 문제를 생각할 때 최대한 간략하게 모델링 해보면 2개의 입력에 대하여 4개의 웨이트 2개의 바이아스와 아울러 firing 효과를 주기 위한 Sigmoid로 구성이 가능할 것이다. 역으로 이 뉴럴 네트워크 모델 NN(Neural Network)을 더욱 간단한 유닛들로 구성해 본다면 2개의 입력에 대해 2개의 퍼셉트론을 병렬 연결하여 구성이 가능하다. 이와 같은 뉴럴 네트워크에서 생성된 출력을 처리하기 위해서는 1개의 뉴론에 해당하는 퍼셉트론 구조에 Sigmoid 처리를 포함하면 된다. 이런 방식의 뉴럴 네트워크 모델링에 의해 2개의 입력을 학습해야 하는 ..

머신러닝 2021.07.04

4-2 뉴럴 네트워크 XOR 로직의 back-propagation 알고리듬

뉴럴 네트워크의 뉴론 모델링 2개의 웨이트와 1개의 편향(바이어스)을 사용하는 퍼셉트론으로 XOR 논리 문제를 풀 수 없으므로 그 대안으로 다층 뉴럴 네트워크에 의한 해법이 연구되었다. 1개의 퍼셉트론으로 XOR 논리 문제를 풀 수 없다는 것은 쉽게 말해서 웨이트와 편향의 수가 부족하다는 점을 의미한다고도 볼 수 있다. 따라서 제안된 기본적인 뉴럴 네트워크의 구조는 웨이트 수가 2개에서 4개로 편향 수가 1개에서 2개로 늘어남과 아울러 Sigmoid 처리 단을 부가하여 생명체의 뉴론에서 관찰되는 firing 현상을 포함하여 시뮬레이션하게 된다. 하지만 이러한 뉴럴 네트워크 구조는 생명체에서 관찰할 수 있는 즉 하나의 입력에 대해 한 번의 웨이팅이 일어나는 시냅스 신경망 구조와 달라지는 분기점이 되기도 한..

머신러닝 2021.07.04

3-13 Quadratic Exponent를 가지는 softmax에 의한 XOR 논리 처리

XOR 논리 문제를 처리함에 있어 2차 다항식이나 3차 다항식 hypothesis 또는 quadratic hypothesis를 사용하는 최소제곱법은 NN에 비해 괄목할 만큼 효율적으로 반복학습 횟수를 줄이면서도 높은 정밀도로 결과를 계산할 수 있었다. 즉 그러한 hypothesis들을 사용하여 XOR 문제를 성공적으로 풀 수 있었다면 Softmax나 Sigmoid 함수에서 이들 exponent를 사용하여 XOR 문제를 처리해 보도록 하자. 한편 AND 또는 OR 논리 문제를 다루는 경우에는 선형 hypothesis 뿐만 아니라 Softmax기법이나 Sigmoid 함수를 사용해서도 성공적으로 문제를 풀 수 있지만 XOR 문제에 있어서는 선형 hypothesis 뿐만 아니라 선형 exponent에 의한 So..

머신러닝 2021.07.02

3-12 Quadratic Hypothesis에 의한 XOR 논리 처리

2종류의 출력 결과를 주는 2차 다항식 기법을 개선하기 위해서 다음과 같이 hypothesis 설정을 quadratic 형태로 변경 설정해 보기로 하자. 편향(바이어스) 추가 모델과 2차 다항식 및 3차 다항식 모델에서는 하나의 웨이트 벡터와 2개의 바이아스 b1, b2를 사용하였으나 이번에는 웨이트 벡터 하나를 추가하여 W1, W2, b1, b2를 사용하기로 한다. NN(neural network)에서 입력 단에 은닉층(hidden layer) 추가 연결에 따라 2개의 웨이트 값들이 추가되어 총 4개의 웨이트들이 사용된다는 점에서 유사성이 있으나 이 hypothesis 기법은 입력 단에서 웨이트 계산과 아울러 직접 하나의 값을 출력한다는 점에서 완전히 다른 방법임에 유의하자. 편향(바이어스)만 추가한 ..

머신러닝 2021.07.02

3-11 2차 및 3차 다항식 Hypothesis에 의한 XOR 논리 처리

2종류의 출력 결과를 주는 quadratic_regression 기법을 개선하기 위해서 2차 다항식 polynomial hypothesis 설정을 hypothesis_0에서 hypothesis_1로 아래와 같이 변경 설정해 보기로 하자. hypothesis_0 경우는 50% 이상 해를 주고 있으나 엄연히 hypothesis 값이 0.5 인 경우가 출력된다. 따라서 hypothesis_1처럼 2차식 형태에서 다항식 차수를 증가시킨 3차식 형태를 테스트해보자. 사용하는 정보량에서는 두 경우가 차이가 없으나 차수가 하나 추가되었다. 코드를 실행해 보면 랜덤 변수에 의한 초기 값 설정이 잘못 된 경우 다음과 같이 nan 이 나오는 경우를 제외하고는 100% 제대로 된 결과를 출력함을 알 수 있다. nan 이 나..

머신러닝 2021.07.02

3-7 집합계산 방식의 softmax XOR 논리 처리

XOR 논리를 NN(neural Network) 방식이 아닌 다소 다른 시각으로 집합계산 원리에 따라 퍼셉트론을 사용해 계산해 보도록 하자. 물론 하나의 퍼셉트론으로 XOR 논리 처리가 되지 않기 때문에 그 대안으로 XOR 논리를 그림에서처럼 2개의 부분집합으로 구성하였다. 이 두 부분 집합의 OR 연산을 하면 XOR 논리가 됨을 알 수 있으며 각각에 대해서 퍼셉트론 모델을 사용하여 학습이 가능하다는 점이 이미 밝혀졌다. 이 XOR 논리 문제를 Softmax를 사용해서도 확률적으로 계산해 보기로 한다. 물론 이 문제를 위에서와 같이 2개의 부분집합으로 나누지 않을 경우에 Softmax 계산은 단일 퍼셉트론과 마찬가지로 처리가 불가능하므로 퍼셉트론에서와 마찬가지로 XOR_1 과 XOR_2 경우로 나누어서 ..

머신러닝 2021.07.02

3-6 NN(Neural Network)이 아닌 집합계산 원리를 이용한 Perceptron XOR 논리 처리

하나의 퍼셉트론으로 XOR 논리 처리가 되지 않는다는 점은 코드 실행을 통해서 확인이 가능하였고 이미 이론적으로도 설명이 가능하였다. 이 문제를 해결하기 위해서 NN(neural Network) 방식에 의한 체계적인 해법이 이미 제시가 되어 있지만 이 문제를 보는 고정된 관점을 탈피해서 다소 다른 시각으로 XOR 논리를 퍼셉트론을 사용해 계산해 보도록 하자. NN 기법에 의한 해법 이전에 공식적으로 문제 제기를 했다고 하는 Minski 와 Papert 교수에 의하면 여러 단의 NN을 사용하면 가능하겠지만 하나의 퍼셉트론으로는 이문제의 해답을 찾을 수 없다고 지적하였으나 이 문제를 풀 수 있는 제대로 된 대안 제시는 없었다. 여러 가지 대안이 있을 수 있으나 그 중의 하나를 알아보도록 하자. 그림에서 3개..

머신러닝 2021.07.02

3-5 XOR 논리 처리를 위한 Neural Network(NN) 구성

수상돌기의 시냅스 영역에서 신경전달물질(neurotransmitter) 분비를 통해 입력 신호 전달과 웨이팅이 일어나며 아울러 여러 개의 수상돌기가 연결된 뉴론에서 시그마(∑)에 의한 가감 합산이 일어난다. 합산된 전위 값은 threshold 조건 만족 여부에 따라 fire 즉 신경 충격이 일어나게 되며 뉴론에서 외부로 연결된 축색 돌기를 통해 신경 정보 전달이 이루어진다. 사진에서도 볼 수 있지만 신경망 NN(Neural Network)은 하나의 뉴론에 여러 개의 수상 돌기가 연결되기도 하며 아울러 여러 개의 축색 돌기에 의해 외부 뉴론과의 연결이 이루어진다. 물론 뉴론 내 외부에서 일어나는 복잡하고 마이크로한 생화학적인 측면을 그대로 머신 러닝을 위한 신경망으로 묘사할 수는 없으며 결국 어떤 방식으로..

머신러닝 2021.07.02

3-4 XOR 로직 머신 러닝: 성냥개비 하나로 (0,1) 과 (1,0) 점을 (0,0)과 (1,1) 점을 분리하라!

이 제목을 풀어쓰면 classification이 불가능한 XOR 로직 perceptron 이 된다. 이미 AND 로직과 OR 로직 문제를 다루어 보았다. 이 두 문제는 쉽게 말하자면 성냥 한 개비를 사용하여 두 영역으로 분리하는 수준의 문제이다. 하지만 XOR 문제에서는 상황이 달라진다. (0,1)과 (1,0) 점을 포함해서 도려내려면 두 개의 선을 그어 파 내야 한다. 즉 두 개의 분리선이 당연히 필요하다. 머신 러닝에서 분리선 1개는 hypothesis = W∙X + b 이므로 즉 웨이트 벡터 W=(w1, w2) 1개와 바이아스 b1 1개가 필요하다는 뜻이다. 앞 예제에서 최소제곱법에 의해 계산했던 결과가 결국 웨이트 벡터와 바이아스 값이었다. 하지만 XOR 문제에서는 명백히 2개의 분리선이 필요하며..

머신러닝 2021.07.02

3-1 OR 로직 머신 러닝

머신 러닝에 의한 OR 로직 classification 에 대해서 알아보자. 수학적인 OR 로직 문제를 생각하는 사람들이 있겠지만 머신 러닝에서 한가하게 수학 문제를 풀어야 할 이유는 없다. OR 로직은 2개의 입력 센서를 가지는 Rosenblatt의 퍼셉트론에서 2개의 라벨을 “+1”과 “-1”이 아닌 “1”과 “0” 으로 학습하는 경우로 보면 될 것이다. 한편 자동차 도난 경보장치에서는 각 도어마다 개폐 스위치가 설치되어 있어 도난 경보기 알람 해제 이전에 어느 도어 하나라도 열게 되면 OR 로직에 의해 출력이 발생하고 경보가 울리게 된다. 아두이노의 디지털 데이터 핀이나 라즈베리 파이의 GPIO 디지털 출력은 “0” 과 “1” 또는 “ON“ 과 ”OFF“ 또는 “LOW”와 “HIGH” 로 표현된다...

머신러닝 2021.07.02