반응형
반응형

#모두를 위한 립러닝 강좌 lec 7-1 : 학습 Learning rate, Overfitting 방지법, 그리고 일반화

https://www.youtube.com/watch?v=1jPjVoDV_uo&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=18



*Gradient descent


cost function을 정의하고 cost 값을 최소화 하기 위해서 사용했던 경사를 타고 내려가는 알고리즘을 구할때

∂값을 임의로 정하였었다. (ex. learning_rate= 0.001)


Learning rate를 잘 정하는게 중요하다. 왜 중요하냐!


1) 이 step을 매우 크게 했을 경우

경사를 내려가는 Step이 매우 크게 된다면, 기울기의 최소값이 아니라 바로 다시 올라갈 수 있다.. (빨강색과 파랑색)

이 rate가 더 크게 된다면, 결국 파랑색 선을 따라서 그래프를 벗어날 수도 있다.

이것을 우리는 overshooting이라고 한다. 

= 값을 구했는데, 굉장히 큰 값을 찍다가 알 수 없는 값이 나올 경우 발견되며 이때 overshooting을 의심 해야한다.


2) 반대로 step을 매우 작게했을 경우

굉장한 시간이 소요되며, 시간 제한이 있을 경우 경사면이 다 돌기도 전에 멈출 것이다.

그래서 미리 cost 함수를 실행하면서 rate의 비율을 찍어보고 테스트 후에 돌리는 것이 좋다! (보통은 0.01을 넣고 돌려보세요)



*Data(X) preprocessing for gradient descent 


어떠한 한 점에서 시작하면, 최고로 낮은 지점에 도착하는 것이 목표이나,

x1값과 x2의 값이 있을 때 값이 크게 차이가 나게 된다면, 그래프는 눌린 타원형으로 그려질 것이다. 


그러므로 데이터의 분포도를 보고, normalization하는 것이 중요하다.

(1) Original Data

(2) zero-centered data

(3) normalized data 


*Standardization 


평균을 분산값으로 나누면 끝이다. = nomalization 종류는 다양하다.



*Overfitting


머신러닝이 학습을 통해서 모델을 만들어 가는데, 그러다 보니까 학습 데이터에 너무 딱 맞는 모델을 만들 수 있다. 

그렇게 되면, 학습데이터를 다시 가지고 물어보면 되지만 실제 테스트 데이터 등을 통해서 돌려보면 제대로 안되더라.


ex) - 와, + 가 석인 경우라면은?

-와 +를 사이로 linear 라인을 그어서 좋은 모델로 만들 수 있지만, 너무 정확하게 만들려고할 경우 모델이 비선형이 될 수 있다.


그래서 일반적이며 좋은 모델은 model1이다. 

그러나 model2는 가지공 있는 데이터에만 정확히 맞아서 정확도가 떨어질 수있다. 이러한 데이터를 overfitting이라고 한다.


*Overfitting을 줄이는 방법

1) 트레이닝 데이터가 많으면 좋다.

2) features 개수를 줄인다. 

3) 정규화(일반화-regularzation)시킨다. 


여기서 그럼 일반화/정규화라는 것은? 

비선형적인 구조들을 선형구조로 만들어내는 것을 말한다. 


빨강색 네모부분이 바로 regularzation strength 라고 한다. 

텐서플로우에서는 l2reg = 0.001 * tf.reduce_sum (tf.square(W)) 로 표현한다. 


반응형
반응형

* 텐서플로우 lib를 추가하기 위해서 확인해야 할 사항

1) python 버전이 3.5.x 인지 확인

$python --version

2) pip 버전이 9.0.x 확인

$pip --version




1. Python 버전 3.5.x 다운로드 및 환경변수 설정 : http://aileen93.tistory.com/58 참고

2. pip 버전 업그레이드하는 방법

방법1) Pycharm을 통해 업그레이드 

Fail > Settings > Project:프로젝트명 > Project Interpreter > 오른쪽 + 버튼 클릭 > pip 검색 > Install Package 

방법2) CMD를 명령어를 통한 업그레이드

[Mac OS] pip 업데이트 

$pip install -U 

[Windows OS] pip 업데이트

$python -m pip install -U pip

방법3) 아나콘다를 이용하기

Python과 Anaconda 모두 삭제 > pip 버전을 확인하여서 Anaconda 다른 버전으로 재설치




pip 환경변수 등록하기

1. pip 명령어를 통해 이미 설치되어 있을 경우, 환경변수 설정을 하고, 그렇지 않을 경우 

2. pip.exe가 있는 경로를 환경변수에 추가 

  • %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Windows\softcamp\sds;C:\Windows\softcamp\sdk;C:\Windows\Softcamp\SDS\x64;C:\Windows\SoftCamp\SDK\x64;C:\Users\Aileen\AppData\Local\Programs\Python\Python35;C:\Users\Aileen\AppData\Local\Programs\Python\Python35\Scripts;



pip 설치하다가 아래와 같이 오류가 날 경우

Collecting pip==9.0.1

  Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) - skipping


  Could not find a version that satisfies the requirement pip==9.0.1 (from versions: )

No matching distribution found for pip==9.0.1


http://aileen93.tistory.com/72


반응형
반응형


반응형
반응형

김성 교수님의 딥러닝 git 다운받기


반응형
반응형

mac OS에는 기본으로 python2.7이 설치되어있다. 


1. python 설치됐는지 확인

appleuicBookPro:~ aileen$ python --version

Python 2.7.10



2. python 3.7로 설정하기 (3.6~)


https://www.python.org/ 접속



Python 3.7 설치~



다 계속 눌러서 설치



New project 시, environment에 3.7 선택하고 create.


반응형
반응형



Python 환경 변수 설정

1. Python3.5 설치 후, 탐색기> 제어판\모든 제어판 항목\시스템 > 왼쪽 메뉴 > 고급 시스템 설정

2. 시스템 속성 > 고급 > 환경변수 

3. 시스템 변수(S)에 Path 편집 클릭 - 파이썬 설치경로 추가 > 확인

  • %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Windows\softcamp\sds;C:\Windows\softcamp\sdk;C:\Windows\Softcamp\SDS\x64;C:\Windows\SoftCamp\SDK\x64;C:\Users\Aileen\AppData\Local\Programs\Python\Python35;


4. 시스템 변수(S) > 새로 만들기 > 확인

  • 변수이름 : PYTHONPATH

  • 변수 값 : C:\Users\Aileen\AppData\Local\Programs\Python\Python35\Lib (파이썬 설치경로)


5. 콘솔창을 다시 열어서 python --version 확인




*아나콘다로 파이썬을 설치 했을 경우, 자동으로 환경변수 설정이 모두 되므로 안해도 됨

반응형
반응형

파이참(Pycharm)에서 텐서플로우 예제 실행해보기



File > Settings .. 



Project 선택 > Project Intepreter > TensorFlow가 있는지 확인!

없으면, + Install > 



TensorFlow 검색 > Install Package


간단한 예제와 결과

import tensorflow as tf

# https://www.tensorflow.org/get_started/get_started
node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0) # also tf.float32 implicitly print('result:', node1, node2)

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/aileen/PycharmProjects/test_project/TensorFlow/__init__.py result: Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32) Process finished with exit code 0


관련문서


반응형
반응형

파이참(Pycharm)으로 Hello world 찍기



파이참 첫 화면!

Pycharm의 프로젝트 구조 : https://www.jetbrains.com/help/pycharm/2016.3/project-structure-dialog.html



Empty Project에서 마우스 오른쪽 클릭하여 Python File 추가



파일에 Print ("Hello, world") 입력하고 실행하면!


C:\Users\Aileen\AppData\Local\Programs\Python\Python35\python.exe C:/Users/Aileen/PycharmProjects/exam_project/HelloWorld.py

Hello, world!


Process finished with exit code 0


다음편 ☞Pycharm에서 텐서플로우 예제 실행해보기

반응형

+ Recent posts