• 머신러닝 기초

    2017. 10. 31. 14:38

    by. 위지원



    딥런닝이란?


    포함 관계는 아래와 같지만



    기계학습의 한 종류지만 요즈음 인기로는 딥 러닝 자체가 기계학습 단어를 대신 말해줄 기세라고..


    기계 학습

    -컴퓨터에게 경험을 하게 하여 나중에 같은 경우가 생겼을 때 더 효율적으로 일을 처리하게 시스템 구조,파라미터를 수정하는것

    -컴퓨터가 데이터로부터 지식을 추출해서 갖게 만드는 작업


    아래와 같이 사람이 생각하고 판단하는 부분에 대해서 객체의 특징과 특징을 가지고 판단할 알고리즘을 학습시키면 같은 결과를 나타내는 것..

    일반 프로그램은 이 그림처럼 사람이 생각하는 알고리즘을 가지고 문제를 풀어내지만 기계학습은 '특징'과 '기계학습 알고리즘'을 가지고 학습하고 예측



    -이상적인 학습 결과 모델은 일반화 능력이 좋은것,과적합 문제가 적은것..


    -알고리즘의 분류

    1.지도학습 : 입출력 데이터를 쌍으로 주어지면 새로운 문제를 풀 수 있는 함수,패턴을 찾는 것

    2.비지도학습 : 입력 데이터만 주어지고 패턴을 찾는 것

    3.강화학습 : 입력에대한 직접적인 출력은 주지 않지만 경험을 통해 기대 보상이 최대가 되는 정책(policy)을 찾아내는 것

    알파고를 교수님은 예시로 들어주셨는데 아래 사진이 알파고의 뉴럴 네트워크 구조라고 한다...와우 정말 복잡하다.

    실제로 구현은 기계학습을 지도학습으로 적용한 뒤 자체 경기를 통해 강화학습을 진행했다고 한다..



    신경망

    인간 두뇌에 대한 계산적 모델을 통해 인공지능을 구현하려고 인공신경망이란 개념을 만들어내면서 인간의 뉴런을 퍼셉트론으로 흉내를 냈음


    다층 퍼셉트론 (Multialyer Perceptron,MLP)

    퍼셉트론 :  다수의 입력에 대해 한가지 출력을 뱉어냄


    벘뜨.. 단층 퍼셉트론은 기초적인 XOR문제도 해결못해서 난감한 상황에서 퍼셉트론을 여러번 겹치는 다층 퍼셉트론이 생긴것임!!


    목표 출력인 yi와 모델의 출력인 xi의 차이를 최소하하도록 경사하강법을 이용하여 가중치 조정함



    벘뜨..!! 다층 퍼셉트론도 문제가 있었으니 이게 레이어가 아래와 같이 생겼음 (위키 출처) *타겟벨류=목적 값

    히든 레이어란 무엇인가? 선형 분리가 불가능했던 데이터를 새로운 공간으로 매핑함으로써 데이터를 선형 분리가 가능하도록 변환해줌

    아웃풋 레이어는 타겟 벨류가 있는 반해 근데 히든 레이어가 가지고 잇는 노드는 타겟 벨류가 없었다.그래서 학습을 시킬 방법이 없었던것..


    그래서 나온 것이 Backpropagation( 역전파 ) 인데 delta rule(경사 하강법 학습방법)을 통해 층이 많더라도 되지 않던 학습의 문제를 해결...

    역전파라는 이름이 붙여진데에 대해선 오차가 본래 진행 방향과 반대 방향으로 전파 된다고 해서 그렇다 한다.

    인,아우풋을 알고 있는 상태에서 신경망을 학습시키는 방법인데, 너모나도 수학적인 내용이므로 대략 살펴보면 그냥 한마디로

    학습의 에러율을 줄이기 위해 경사하강법을 이용하여 가중치를 조정한다





    딥러닝

    -쉽게 말해서 인풋에 대한 아웃풋을 매핑시켜주는 것

    Figure 3.4: Deep belief network layers learning complex feature hierarchies [41] 


    사진출처 URl

    -일반 신경망에 비해 다수의 은닉층을 포함(2~300개)

    -일반 신경망은 특징을 입력으로 쓰는 반면 딥런닝은 특징 추출과 학습을 함께 수행하기때문에 효과적인 특징을 뽑아내서 우수한 성능을 보임


    -대표적인 딥러닝 신경망으로는

    1.컨볼루션(CNN)

    컨볼루션 연산을 수행하여 특징을 추출해서 이걸 이용하여 분류 (영상,문자인식 등 인식문제에 좋음)

    *컨볼루션 연산은  어떠한 영상 픽셀에서 마스크를 입히고 Σ(픽셀값*마스크의 가중치) 한 값을 출력 영상의 픽셀값으로 지정


    이 방법을 이제 마스크를 특징을 추출 하는데에 쓰는 것임

    Max pooling은 화면의 크기를 줄이는 과정인데 해당 영역의 최대치를 선택한다.

    뉴런이 가장 큰 신호에 반응하는 것과 유사하며 노이즈가 감소하고 속도도빨라지고 분별력도 좋아진다고 한다.



    2.재귀(RNN)

    순차데이터(음성,자연어,움직임)에 대해 학습하고 과거 상태정보와 현재 입력정보로 다음 상태 및 출력 결정


    3.오토 인코더

    입력과 같은 출력이 만들어지도록 학습된 신경망, 특징추출,압축,잡음제거,데이터 생성


    4.확률 그래프 기반 모델(RBM)

    확률적으로 동작하는 뉴런을 사용


    5.대립 쌍 생성(GAN)

    학습 데이터와 유사한 데이터를 생성



    딥러닝의 응용

    컴퓨터 비전, 자연어 처리,음성 인식



    '2017년 > machine learning' 카테고리의 다른 글

    Sequential Data  (0) 2017.10.31
    기계학습 학습데이터에 대해서  (0) 2017.10.31
    텐서플로우의 행렬 ,shape에 대해/.  (0) 2017.09.18
    깨닳음의 시간..ml engine api를 다시보자  (0) 2017.09.12
    ml엔진 공부  (0) 2017.09.11