2016년 8월 26일 금요일

패턴인식 실습(1)


패턴인식기의 기본 실습

지정한 평균과 공분산을 이용해 랜덤의 가우시안 분포를 생성하고, 2차원 평면에 플로팅

결정 경계를 그리고 그에 대한 학습오차를 계산

학습오차=0.08

가우시안 분포를 따르는 데이터의 산점도

밀도 함수 추정(가우시안 분포)

모집단의 확률밀도함수

파젠창으로 밀도함수 추정


                     너비가 1.0일때                                     너비가 0.5일때          

가우시안 커널에 의한 밀도함수 추정

                    너비가 1.0일때                                        너비가 0.1일때
.

베이지안 분류기

3개의 클래스를 가지는 데이터

           단위 공분산                     같은 공분산                     다른 공분산


2016년 4월 1일 금요일

알파고 기사 스크랩

완벽한 계산은 불가능한 일
그래서 사람처럼 직관으로 승부수를 던진다
인간의 뇌는 신경세포들의 연결체이다. 신경세포들은 전기신호를 주고받는다. 공부를 하거나 경험을 하면 신경세포의 연결망이 재조직되거나 연결 강도가 바뀌면서 기억이나 판단 능력이 생긴다. 알파고의 핵심 능력은 사람의 뇌를 본뜬 인공 신경망에서 나온다. 알파고의 인공 신경망은 크게 ‘정책망(policy network)’과 ‘가치망(value network)’으로 나뉜다. 먼저 세 종류의 정책망이 알파고가 만들어진 뒤 3주 동안의 집중 학습을 통해 형성됐다.

우선 ‘롤아웃(rollout) 정책망’에는 바둑의 기본이 들어 있다. 바둑에는 격언처럼 전해오는 일종의 규칙이 있다. ‘붙이면 젖혀라’, ‘젖히면 뻗어라’, ‘모자는 날일자로 벗어라’ 등 바둑을 배운 사람이라면 누구나 별다른 생각없이 가장 좋은 수로 여기는 규칙들이 롤아웃 정책망으로 학습된다. 이어 딥마인드는 알파고에게 아마추어 고수들이 인터넷에서 둔 바둑 기보(棋譜) 16만건을 공부시켰다. 특정한 상황을 보여주고 다음에 사람이 어디에 두었는지 맞히는 문제를 3000만개 풀었다. 이를 통해 얻은 경험은 ‘지도학습 정책망(supervised learning)’에 업데이트됐다.

하지만 16만건의 바둑 기보는 바둑을 알기엔 턱없이 부족하다. 이 때문에 알파고는 수없이 가상 대국을 두며 새로운 수를 찾았다. 알파고는 혼자서 하루에 3만번 바둑을 두면서 배운 것들을 하나하나 따져보고 검증했다. 기보에 없는 수를 둘 경우 어떻게 되는지, 어떤 수를 둬야 이길 확률이 높은지 자율학습을 통해 깨달은 것이다. 이 정보는 ‘강화학습(reinforcement learning) 정책망’에 쌓였다.

이기는 게임엔 무리수 안 둬
정책망을 통해 추려낸 수 후보들의 승률 분석
이 부분을 맡는 신경망이 '가치망'이다
알파고는 정책망으로 현재 상황에서 어떤 수가 좋다는 것은 비교적 잘 알게 됐지만, 전체적인 바둑이 유리한지 불리한지는 판단할 수 없었다. 형세를 판단할 수 없다는 뜻이다. 프로 바둑기사들은 ‘기분 좋은 형세’라는 말에서 알 수 있듯 감(感)으로 형세를 판단한다. 사람이 논리적으로 설명할 수 없는 것을 알파고에 입력하기는 힘들다. 알파고는 가치망이라는 또 다른 신경망을 이용, 정책망을 통해 추려낸 다음 수 후보들의 승률을 추정한다.

바둑판에서 한 점에 돌을 놓으면 그다음에 돌을 놓을 수 있는 다양한 점들이 나온다. 이 점들도 각각 그다음에 가능한 여러 점들을 쭉 나열할 수 있다. 이는 마치 한 가지에서 여러 가지가 계속 나오는 나무(트리) 모양새가 된다. 가치망에는 이와 같은 가지 중 일부를 선택하는 ‘몬테카를로 트리 서치(MCTS)’라는 방식이 사용된다. 다음 수 후보들을 뒀을 때 생겨나는 경우의 수 중 일부만을 무작위로 시뮬레이션해본 뒤 이를 근거로 승률을 얻어내는 방법이다. 마치 방송국에서 TV 프로그램 시청률을 집계하기 위해 일부 가구만 표본조사하는 것과 비슷하다. 시청률 조사는 많은 가구를 조사할수록 정확하다. 알파고는 후보 수마다 10만번에 이르는 시뮬레이션 결과를 얻어내는 것으로 알려져 있다. 가치망을 통해 알파고는 현재 상황에서 자신의 유불리를 파악할 수 있다. 정책망과 가치망을 활용해 알파고는 아무리 상대방이 최선의 수를 둬도, 그보다 더 승률을 높이는 수를 판단할 수 있게 됐다.

알파고의 기본 틀은 정책망이다. 수많은 대국을 거쳤지만, 알파고 역시 바둑에서 일어나는 모든 경우를 알 수 없다. 정책망에 없는 수가 나오면 가치망도 승률이 50%를 넘어서는 수를 찾아내기 힘들다. 알파고의 가장 강력한 무기가 무용지물이 된 것이다.

좋은 기사다.
주소는 http://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=105&oid=023&aid=0003160410

2016년 3월 27일 일요일

Bayesian network(1)

기본 단어 정리

probabilistic GMs includes BNs

node = random variable
edges = probabilistic dependency

GMs with undirected edges :   Markov random fields
Markov blanket : 
every node is only dependent on its parents, children and children's parents


DAG
   - nodes
   - directed edges : statistical dependence = "influence"


 * each variable is independent of its non-descendents in the graph given the state of its parents.

 * For discrete random variables, this conditional probability is often represented by a table, listing the local probability that a child node takes on each of the feasible values  for each combination of values of its parents.

A Bayesian network B is an annotated acyclic graph that represents a JPD over a set of random variables V. The network is defined by a pair B =<G, θ>
G : Graph
θ : set of parameter ex) θxi|πi = PB(xi|πi)



2016년 3월 19일 토요일

K Nearest Neighbor

Classification
 most fundamental and simple classification methods
 should be one of the first choices for a classification study when there is little or no prior knowledge about the distribution of the data.

The k-nearest-neighbor classifier is commonly based on the Euclidean distance between a test sample and the specified training samples.





2016년 3월 12일 토요일

인공지능 자료조사(3)

2016/3/13
감사합니다 삼성SDS

   1. 학습 모델

     뉴런의 계산은 노드의 함수에 의해 결정
     노드의 함수 = 활성 함수(activation function) = 전이 함수(transfer function)

   2. 학습 규칙
     뇌과학의 관점
      1) 학습을 하면 신경회로망을 구성하는 시냅스에 일정한 물리적, 구조적 변화가 일어남
      2) 오랫동안 반복적인 학습을 하면 시냅스 수가 많아진다.
      3) 새로운 사실을 배울 때마다 뇌는 변화한다.

     헵의 학습 규칙
         : 두 개의 뉴런 i, j가 서로 반복적이고 지속적으로 점화(firing)하여 어느 한쪽 또는 양쪽 모두에 어떤 변화를 일으키면 상호간의 연결강도는 커진다 

   3. 학습 과정
      1) 인공신경망의 연결(시냅스)를 초기화
            : 연결강도와 임계값을 Random Number로 초기화
      2) 훈련용 data와 목표값을 준비
      3) 인공신경망의 함수에 입력값을 넣어 출력값 계산
         
      4) 연결 강도 조정
         : 목표값과 단계 3)의 출력값을 비교, 허용 가능 임계치를 넘으면 차이를 줄이는 방향으로 연결 강도를 변경
          
      5) 출력값과 목표값이 같을 때까지 단계 2)로 가서 반복 수행


인공지능 자료조사(2)

2016/3/13
감사합니다 삼성SDS

1. Deep Learning
     심층 계층을 가진 인공신경망   
                       뭔 말이냐? 인간의 뇌에 존재하는 시냅스와 뉴런을 본따서 만든 게 딥러닝이다.
    1. 신경망
신경망 이렇게 생김
         








       시냅스
             : 전달된 신호의 강도가 임계치 이상이 되면 신호를 전달
 
    2. 인공신경망의 모델링


       신경망의 수학적 모델링









       인공신경망의 관점
        : 여러 노드(Node)들의 입력(Input)을 합산한 값이 설정값이 이상이면 출력이 생긴다.

        신경망의 연결









        인공신경망의 관점
            : 각 노드들을 가중치(Weight)를 통해 서로 연결된다.

   3. 인공신경망의 계층 구조
               
     전체 모델은 가중치를 반복적으로 조정하면서 학습한다.
      중간층이 2개 이상일 경우를 심층신경망이라 한다.
      심층신경망을 통해서 이루어진 학습과 추론 모델이 Deep learning.    

   4. 심층신경망
      1) Overfitting 같은 문제를 효과적으로 대처할 알고리즘의 부족
          -> 층마다 개별학습, 몇 개의 노드를 끈다(Drop-out)
      2) 인공신경망을 학습시킬만한 충분한 데이터가 부족
          -> 빅데이터로 인한 이용 가능하고 검증된 대량 데이터 확보
      3) 연산 처리 능력 부족
          -> GPU의 발전


인공지능 자료조사

2016/3/12
오늘부터 인공지능 할 거

감사합니다 T-Robotics, 삼성SDS

자료조사 한 거 정리하자.

1. Machine learning
   1. Machine learning의 3가지의 요소
     1) Task
         : 목표                      
     2) Experience
         : data          
     3) Performance measure
         : 성능점수

   2. Task
      1) Classification
          : discrete 하다.           -> ex) 손으로 쓴 숫자 인식(0,1,2,3,4,5,6,7,8,9)
      2) Regression
          : continuous 하다.       -> ex) 연속적인 함수 예측 y=3x+4
      3) Clustering
          :  둘 다 아니다.

        * Supervised(지도 학습)
            : 미리 답이 정해져 있다는 것
                Classsification -> 0은 0이다. 1은 1이다 ........
                                        뭔 뜻이냐? 내가 일그러진 0을 써도 답은 어쨌든 0
                     Algorithm: k-Nearest Neighbors, Bayesian Network, Support Vector Machine
                Regression -> y=3x+4, x가 1이면 y=7, x=2이면 y=10
                     Algorithm: Linear regression, Lasso
          Unsupervised(자율 학습)
            : 미리 답이 정해져 있지 않다는 것
                     Algorithm: K-Means, fuzzy, Meanshift

   3. Experience
      : data가 task를 잘 설명할 수 있는가?
        -> ex) 포물선 운동을 설명하려면 x, y에 대한 data가 있어야 한다.
                         뭔 뜻이냐? 만약 x 값밖에 없으면? 그냥 x 축에서 왔다갔다거린다는 것
                                        만약 x,y,z 값이 있으면? 쓸데없이 함수 복잡해짐

   4. Performance measure
      1) Classification
          : 0,1 loss function  -> Error가 발생할 때마다 +1
      2) Regression
          : L2 loss function   -> 값이 내가 설정한 Model에서 얼만큼 떨어져 있는가?
      3) Clustering
          : 중심을 잡아서 L2 loss function을 적용

   5. Machine Learning Process
      1) Select a parametric / nonparametric model
      2) Set a performance measurement including regularization term
      3) Training data (optimizing parameters) until validation error increases
      4) Evaluate the final performance using test set
       다시 보니까 설명이 부족한듯?
     (1),(2),(3) Feedback System 이용한듯

  6. Machine Learning Process(2)
    1) Regularization
        조건
           : Setting한 Model이 현재의 data set을 잘 설명 가능해야 함
             Setting한 Model이 미래의 보이지 않는 data set을 잘 예측해야 함
         * Overfitting
              : 현재의 data를 예측하기 위해 모델을 너무 복잡하게 만드는 것
            대책
               Maximum a Posteriori(MAP)
              주어진 data를 training set, validation set으로 나눈다.
                  training set: Model 최적화를 위한 data set(80%)
                  validation set: Model이 validation set을 잘 예측하는 가?
     2)  Nonparametric model
            : Support Vector Machine, Gaussian Process Regression
          Dimension reduction
            : Principal Component Analysis
               Principal Axis를 찾아 나머지 axis를 Principal Axis를 투영시킨다.

    3) Least Square Problem
         Ax = b -> x = (A의 역행렬)B
                           pseudo inverse
       이런 경우가 적용이 되지 않을 때 -> 언제?   A가 커서 역행렬 구하기 쉽지 않을 때
                                                                   -> Optimization
    4) Optimization
         1. Set a cost function
         2. Apply an optimization
           Error가 더이상 줄어들지 않을 때까지
             Gradient Descent Method(기울기로)
                        - Local Minimal Problem이 있을 수 있다
                         이게 뭐냐?
                                            이런 거