ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [딥러닝 #3] 백터화된 로지스틱 회귀/경사하강법, 인공신경망
    EVI$ION/DEEP LEARNING 2019. 5. 6. 22:55

    [벡터화]

    벡터화된 코드를 작성한다는 것은, 내부적인 연산을 병렬적으로 처리한다는 것을 의미한다. 그냥 쉽게 행렬처럼 계산한다고 생각하면 된다.

    벡터화된 코드는 짧고 간결하며, 속도가 빠르고, 정규 수학 표현과 비슷하다는 장점이 있다.

     

     

    [학습률]

    경사하강법 알고리즘에서 사용되는 초매개변수로, 프로그래머가 머신러닝 알고리즘에서 조정하는 값을 말한다. 즉, w를 얼마나 많이 이동시킬 것인지를 결정하는 것이 학습률이다. 학습률은 모델마다 다르게 설정된다.

     

    예를 들어 기울기가 2.5이고 학습률이 0.01이라면, 경사하강법 알고리즘은 원래 지점에서 0.025(= 2.5*0.01) 떨어진 지점을 다음 지점으로 결정한다. (여기서 기울기(0.5)와 학습률(0.01)을 곱한 결과값을 경사 스탭(0.025)이라 한다.)

     

    학습률 값을 너무 작게 설정하면, 경사 스탭이 그만큼 작아지기 때문에 지점이 천천이 하강하여 학습 시간이 매우 오래걸린다.

    학습률 값이 너무 작은 경우

    반대로 학습률 값을 너무 크게 설정하면, 다음 지점이 곡선의 최저점을 이탈할 수 있다는 문제점이 있다.

    학습률 값이 지나치게 큰 경우

    따라서 미세 조정을 통해 적절한 학습률을 찾아야 한다.

     

     

    [CPU vs GPU]

    직렬 처리 방식에 특화된 CPU는 한 번에 한 가지의 명령어만 처리하기 때문에 캐시 메모리의 비중이 큰 대신 ALU의 개수가 적다. 반면 GPU는 CPU에 비해 캐시 메모리의 비중이 작지만, ALU의 개수가 훨씬 많기 때문에 여러 명령어를 동시에 처리할 수 있다. 즉, GPU는 병렬 처리 방식에 특화되어 있기 때문에 많은 데이터를 한 번에 처리해야 하는 머신러닝 에서 많이 사용된다.

     

     

    (벡터화된 경사하강법과 로지스틱 회귀는 2주차 내용을 공부한 뒤에 다시 작성하겠다...ㅠㅠ)

     

    [딥러닝 라이브러리 및 프레임워크]

    케라스 (Keras)

    • 파이썬으로 구현된 쉽고 간결한 딥러닝 라이브러리
    • 모듈화가 가능하고, 각 모듈은 짧고 간결하다.
    • 새로운 클라스나 함수로 모듈을 쉽게 추가할 수 있다. (확장성)

     

    첫번째 인자(1) : 출력 뉴런의 수

    input_dim : 입력 뉴런의 수

    - init : 가중치 초기화 방법

    • uniform : 균일 분포
    • normal : 가우시안 분포

    - activation : 활성화 함수

    • linear : 기본값. 별도 활성화 함수 없이 입력 뉴런과 가중치의 계산 결과를 그대로 출력한다. (ex. 선형 회귀)
    • sigmoid : 시그모이드 함수. 이진 분류 문제에서 출력층에 주로 사용되는 활성화 함수
    • softmax : 소프트맥스 함수. 셋 이상을 분류하는 다중 클래스 분류 문제에서 출력층에 주로 사용되는 활성화 함수
    • relu : ReLu 함수. 은닉층에 주로 사용되는 활성화 함수

     

     

    텐서플로 (Tensorflow)

    • 구글에서 제작한 딥러닝 라이브러리
    • 텐서플로 자체는 기본적으로 c++로 구현되어 있지만, Python, Java, Go 등 다양한 언어를 지원한다. 하지만 대부분의 기능은 파이썬 라이브러리로만 구현되어 있기 때문에 파이썬을 이용하는 것이 좋다.

     

     

    [참고문헌 및 출처]

    https://developers.google.com/machine-learning/crash-course/reducing-loss/learning-rate?hl=ko

    http://biz.chosun.com/site/data/html_dir/2016/07/24/2016072400125.html

    https://tykimos.github.io/2017/01/27/Keras_Talk/

    https://excelsior-cjh.tistory.com/148

    'EVI$ION > DEEP LEARNING' 카테고리의 다른 글

    [딥러닝 #1] 딥러닝의 기초  (0) 2019.04.01
Designed by Tistory.