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이 있을 수 있다
                         이게 뭐냐?
                                            이런 거