머신러닝 283

Log Linear Regression을 위한 자연 log 함수형 hypothesis 적용 사례

머신 러닝은 시작은 1957년 Rosenblatt에 의해 오래 전에 시작되었지만 오래동안 내팽개쳐져 왔으며 아직도 내팽개쳐진 상태로 있는 분야로서 2000년이 지나서야 비로서 점차 관심이 집중되고 있는 분야이다. 머신러닝을 배우는 가장 초기에 접하게 되는 주제가 바로 선형회귀(Linear Regression) 문제가 아닐까 한다. 머신 러닝은 워낙 더디게 발전했지만 이미 통계학과 관련된 기술 분야에서 다 다루었던 주제이다. 선형 회귀에서 한걸음 더 나아가 Log Linear Regression 문제가 있는데 이 주제는 기계공학이나 재료공학에서 금속재료의 피로성능평가 분야에서 오랜 동안 발전해왔으며 위 그림에서처럼 피로시험 시편에 일정한 진폭의 하중을 지속적으로 가할 경우 피로균열 성장 관찰에서 얻어지는 ..

머신러닝 2021.07.06

4-12 죄수의 딜레마 (Prisoner’s Dilemma)로직 softmax 머신 러닝 계산

형량 바게인이 가능하다고 알려진 미국에서 기원한 죄수의 딜레마 문제는 두 죄수간의 잔머리 굴리기에 따라 결과가 다음과 같이 얻어진다. 즉 두 죄수의 범죄 행각의 경중에 따라 형량이 결정되는 것이 아니라 누가 더 경쟁적으로 자신의 이익을 극대화하기 위하여 어떤 전략을 취하느냐에 따라 유죄(guilty)와 무죄(not guilty)가 갈리게 된다. 결국 두 죄수 중의 한명인 A 기준으로 살펴보면 B 가 묵비권을 행사할 때에 A가 꼰질르면 유죄 무죄에 상관없이 0.0년이 형량으로 구형되며 반면에 나머지 경우들은 모두 최대 형량의 33% 또는 67% 내지는 100% 를 구형받게 된다. 하지만 이 문제에서 A 나 B를 막론하고 인간의 이기적 속성이란 것이 비슷하므로 동일한 전략을 실행하기 쉬워 보인다. 즉 함께 ..

머신러닝 2021.07.06

4-11 죄수의 딜레마 (Prisoner’s Dilemma) 로직화 및 머신 러닝 계산

게임이론이나 경제학 또는 범죄수사에서 유명한 죄수의 딜레마 문제를 다루어 보자. 두 명의 범죄자들이 잡혀왔으나 기소하기 위해서는 증거가 부족한 상태라 검찰은 범죄자들이 서로 짜고 칠 수 없도록 각각 독방에 가둔 후 형량 바게인을 위한 거래를 제안한다. 1) 둘 다 서로가 배신할 경우에는 각각 2년의 형량으로 감형하여 구형한다. 2) 한명이 배신하여 자백을 하고 다른 범죄자가 묵비권을 행사하면 자백한 범죄자는 형량 없이 풀려나고 묵비권을 행사하는 범죄자는 3년의 형량을 구형한다. 3) 둘 다 묵비권을 행사하여 추가적인 증거 수집이 불가능한 경우에는 둘 다 1년형을 구형할 수밖에 없다. 결과적으로 인간의 또는 범죄자의 심리 상 두 범죄자는 자백을 하기 쉽다. 만약 상대방이 묵비권을 행사하는데 자신만 자백하게..

머신러닝 2021.07.06

4-10 ReLU:Sigmoid = 2:8 뉴럴 네트워크(NN)의 Wide Deep Learning

Learning rate = 0.1, 학습횟수 10,000회 조건 하에서 XOR 로직 문제를 Depth가 10인 즉 10개의 layer들을 가지면서 각 layer당 10개의 노드를 가지는 Fully connected NN(뉴럴 네트워크)을 적용해서 실패한 결과를 주었던 예제를 ReLU 함수를 사용하여 다시 다루어 보았다. 실패의 원인은 NN 레이아웃의 구조적 문제가 아니라 layer 사이에 도입되는 Sigmoid 함수의 특성에 기인하는 것이란 점을 지적하였다. Wide deep NN 코드의 레이아웃을 보면 각 layer 별 처리 단계 마다 Sigmoid 가 있음을 알 수 있다. 각 layer 별로 어떤 노드에서 값이 마이너스(-)의 값을 가지게 되면 Sigmoid 처리 결과 거의 ∼0에 가까운 값을 주며..

머신러닝 2021.07.06

4-9 multi-layer NN(뉴럴 네트워크)의 Wide Deep Learning의 한계는 어디까지인가?

XOR 로직을 처리하기 위해 구성되는 다음의 가장 기본 적인 형태의 NN을 가지고 사용자가 원하는 규모의 은닉 층을 넣어서 처리해 보도록 하자. 은닉 층의 자유도를 10개 정도면 충분할 것이다. 아울러 중간에 위치시킬 은닉 층수를 이미 다루어 보았던 4에서 순차적으로 10까지 증가시켜 보자. 코드에서 레이어 하나씩 증가시키기란 그다지 어렵지 않다. 은닉층 수를 증가시켜 본 결과 8개까지는 별 문제가 없었고 9개에서부터 결과가 나오기도 하나 제대로 된 결과가 나오지 않는 빈도수가 증가하였다. 이와 같이 앞단의 입력 노드들과 이어지는 다음 단의 노드들과 빠짐없이 모조리 연결되는 경우를 “Fully connected layers” 라고 하며 이 용어는 CNN(Convolutional NN)의 마지막 레이어 부..

머신러닝 2021.07.06

4-8 NN(뉴럴 네트워크)의 Wide Deep Learning

XOR 로직을 처리하기 위해 구성되는 다음의 가장 기본 적인 형태의 NN에 대해 Wide Deep Learning을 적용해 보자. XOR 로직을 제외한 AND, OR 로직이라든지 또는 선형회귀법을 비롯한 많은 문제들은 쉽게 처리가 되지만 XOR 로직에 한해서는 multi-layer NN에 의해서만 처리되기 때문에 항상 XOR 로직이 거론된다. 이 예제 문제는 현재 입력 레이어와 출력 레이어로 구성된 가장 기본적인최소 규모의 뉴럴 네트워크 형태를 취하고 있다. 2개의 입력에 대해 4개의 웨이트와 2개의 편향(바이어스)을 사용하여 나오는 2개의 출력을 Sigmoid 처리하는 기본 적인 NN 구조에 있어서 이 웨이트 와 편향의 수는 최소에 해당한다. 즉 regression 과정에서 웨이트와 편향의 수를 더 이..

머신러닝 2021.07.06

4-7 TensorBoard에 의한 TensorFlow 코드 NN의 내부 Graph 분석

아래의 과정은 윈도우즈 아나콘다가 아닌 리눅스 OS를 사용하는 라즈베리 파이 보드에서 TensorBoard 사용법임에 유의하자. 아울러 TensorBoard 데모에 사용하는 NN 코드에 관해서는 4-3절의 내용을 읽어보고 참조하도록 하자. TensorFlow 코드가 간단할수록 그라프 구조를 검토하기가 쉬워진다. 이 TensorBoard 기법을 몰라도 머신 러닝을 배우는데 큰 지장은 없겠지만 어느 정도 머신 러닝이 익숙해져 XOR 문제에 대한 NN을 다루게 되면 한번쯤 다루어서 그 내막을 파악하게 되면 머신 러닝 학습에 도움이 될 수도 있을 것이다. TensorFlow 코드에서 특정 파라메터 값들을 추적하기 위해서 sess.run() 명령을 사용하여 계산 결과를 일일이 프린팅 출력했으나 TensorFlow..

머신러닝 2021.07.05

4-6 CNN, NN(Neural Network), Deep Learning, Depth, Width가 무엇인지 생각해보자!

1959년 하버드 의과대학의 후벨과 위젤 (Hubel & Wiesel)교수는 원숭이 대뇌 실험을 통해 시각피질에서 원숭이가 시각적으로 보게 되는 오브젝트들의 특징(feature)을 탐지한다는 사실을 발견하여 훗날에 신경 병리학(Physiology)분야의 업적으로 노벨 의학상을 수상하게 된다. 다음 사진에서 당신의 뇌속의 CNN을 사용하여 숨은 고양이를 찾아보기 바란다. 일단 원숭이든 고양이든 사진에서처럼 옴짝 달짝 못하게 지그로 꽉 고정 시킨 후 뇌의 시각피질 (visual cortex)에 전극을 설치하는 한편 고양이에게 흑백 모니터 상에서 검은색 바를 여러 가지 양상으로 보여주면서 시각피질에서 나오는 전기 신호를 오실로스코프와 오우디오 사운드로 관찰하자. 이들은 특히 오브젝트의 상태에 따른 고양이의 시..

머신러닝 2021.07.05

4-5 머신 러닝 SVM(Support Vector Machine) 기법이란?

XY 평면 위의 2종류 데이터 클라스 즉 각각 원과 별로 구분되는 라벨 명을 가지는 데이터 군들에 대해서 데이터들을 구분해 줄 수 있는 하이퍼플레인을 고려해 보자. 위와 같은 2차원 데이터 군들에 대해서는 하이퍼플레인이 하나의 직선이나 곡선으로 표현되지만 3차원 공간 상의 데이터라면 3차원적인 평면이나 곡면이 될 수도 있다. ⓵번 그림에서 두 종류의 데이터를 제대로 구분할 수 있는 선형의 하이퍼플레인은 어는 것인가? 정답 B 이다. ⓶번 그림에서 하이퍼플레인 후보 A, B, C 중에서 어떤 기준으로 어느 것을 하이퍼 플레인으로 선택할 것인가? ⓷번 그림에서 볼 수 있듯이 마진(Margin) 개년을 도입하자 마진이란 하이퍼플레인에서 근접한 데이터까지의 수직 거리가 기준이 된다. B를 택하면 근접한 별과 원..

머신러닝 2021.07.04

4-4 XOR 문제의 Polynomial Hypothesis 접근법과 Support Vector Machine 기법

수상돌기의 시냅스 영역에서 신경전달물질(neurotransmitter) 분비에 의한 입력 신호 전달과정에서 웨이팅이 일어나며 아울러 여러 개의 수상돌기가 연결된 뉴론에서 시그마(∑)에 의한 전기 신호의 가감 합산이 일어난다. 합산된 전위 값은 threshold 조건 만족 여부에 따라 fire 즉 신경 충격이 일어나게 되며 뉴론에서 외부로 연결된 축색 돌기를 통해 신경 정보 전달이 이루어진다. 뉴럴 네트워크는 이와 같은 기본 구조를 갖추도록 컴퓨터 모델링을 통해 구성되며 그중에서 가장 단순한 모델이 퍼셉트론일 것이다. 뉴론 모델의 출발점에 해당하는 단일 퍼셉트론의 논리적 특성 파악을 위한 AND 및 OR 논리 머신 러닝에서 입력 신호 처리, 웨이팅 그리고 시그마(∑)에 의한 가감 합산처리, threshol..

머신러닝 2021.07.04