공부한기록

파이썬 머신러닝 학습 자료형부터 인공지능까지

studydiary 2021. 9. 4. 15:37
반응형

파이썬 머신러닝 학습

파이썬 자료형이란?



Python type 중 Sequence type 은 list, tuple, string 이 있습니다.

 파이썬은 정수, 실수 타입의 자료와 여러 데이터를 나열하여 저장하는 시퀀스 자료형이 있습니다.

list, string, range, tuble 이 있으며 공통되는 사용방법 또한 가지고 있습니다.

시퀀스 타입의 공통적인 특징은 나열된 데이터는 순서대로 저장됩니다.

시퀀스 타입은 다른 시퀀스 타입 객체에 적용할수 있습니다.


인덱싱 슬라이싱도 가능합니다.

튜플은 불변형 입니다.

리스트는 가변형 입니다.



객체지향 4가지 특징은?



객체로부터 필요한 특징과 행위를 뽑아 내는 것은 추상화라고 합니다.

Rank, Shape, Type 3가지 구성 요소를 갖는 다차원 행렬은 Tensors 입니다.

캡슐화는 외부에서 보일 필요가 없는 데이터를 숨겨놓는걸 말한다.

데이터와 함수를 묶어서 외부로부터 보호합니다.



다양성은 래스들이 똑같이 하나의 인터페이스를 구현합니다.

동일한 부모클래스를 상속했을 때 어떤 클래스 인지 신경쓰지않고 공통적인 함수를 호출하는 것을 말합니다.

딥러닝 학습은?

Python의 대표적인 머신러닝 라이브러리로 분류, 클러스터링, 회귀, 차원 감소 등의 분석 기법을 제공하는 것은 scikit learn 입니다.



딥러닝 학습에 있어 정답(label)이 없이 학습하는 방법은 Unsupervised Learning 입니다.



Supervised Learning(지도 학습)의 주요 목적은 레이블된 훈련 데이터에서 모델을 학습하여 본 적 없는 미래 데이터에 대해 예측을 만드는 것입니다.

여기서 지도(supervised)는 희망하는 출력 신호(레이블)가 있는 일련의 샘플을 말합니다.

즉, 정답이 있는 데이터를 가지고 예측하는 것입니다.

​Unsupervised Learning(비지도 학습)은 레이블되지 않았거나 구조를 알 수 없는 데이터를 다룹니다.

비지도 학습을 사용하면 알려진 출력 값이나 보상 함수의 도움을 받지 않고 의미 있는 정보를 추출하기 위해 데이터 구조를 탐색할 수 있습니다.

즉, 정답이 없는 데이터를 가지고 예측하는 것입니다



Unsupervised Learning에는 Clustering(군집)이 있습니다.

​여러 개의 tree를 임의 생성하여, 각 tree의 예측평균으로 prediction하는 모델은 RandomForest 입니다.

Clustering(군집)​​은 사전 정보 없이 쌓여 있는 그룹 정보를 의미 있는 서브그룹 또는 클러스터로 조직하는 탐색적 데이터 분석 기법입니다. 분석 과정에서 만든 각 클러스터는 어느 정도 유사성을 공유하고 다른 클러스터와는 비슷하지 않은 샘플 그룹을 형성합니다.

레이블이 없는 데이터들을 조직화하고 의미 있는 관계를 유도하는 훌륭한 도구입니다.

Regression은 결과적으로 연속값, 실수를 예측하는 것입니다.

즉, 데이터들을 가지고 추세선을 긋는 것입니다.

Dimensionality reduction(차원 축소)도 비지도 학습 분야에 속합니다.

고차원의 데이터를 다루어야 할 때, 즉 하나의 관측 샘플에 많은 측정 지표가 있을 때

머신 러닝 알고리즘의 계산 성능과 저장 공간의 한계와 마주칠 수 있습니다.

비지도 차원 축소는 잡음(noise) 데이터를 제거하기 위해 특성 전처리 단계에서 종종 적용하는 방법입니다.

이러한 잡음 데이터는 특정 알고리즘의 예측 성능을 감소시킬 수 있습니다.



차원 축소는 관련 있는 정보를 대부분 유지하면서 더 작은 차원의 부분 공간으로 데이터를 압축하는 방법입니다.

Supervised Learning에는

Classification(분류)와 Regression(회귀)가 존재합니다.

이들을 쉽게 말하자면,

Classification은 (0,X) or (Y,N) or (0,1) 등으로 주어진 입력 데이터가 어떤 종류의 값인지 데이터의 유형을 '분류'하는 것입니다.

 

딥러닝에서 활성화 함수는?

 


딥러닝에서 추론된 값을 0과 1사이의 값으로 변경하기 위해서 사용되는 활성함수은 sigmoid 입니다.



tanh 함수는 함수의 중심값을 0으로 옮겨 sigmoid의 최적화 과정이 느려지는 문제를 해결 합니다.

입력값 x가 0 이하일 때는 0으로 0보다 클 때는 x를 반환하는 활성화 함수는 ReLU 입니다.




딥러닝에서 추론된 값을 확률분포로 변경하기 위해서 사용되는 함수는 softmax 입니다.

 


딥러닝 모델 및 예측 코드 작성 순서는?

 

1) 데이터셋 생성하기
원본 데이터를 불러오거나 시뮬레이션을 통해 데이터를 생성.

훈련셋, 검증셋, 시험셋을 생성.

딥러닝 모델의 학습 및 평가를 할 수 있도록 포맷 변환.



2) 모델 구성하기

시퀀스 모델을 생성한 뒤 필요한 레이어 구성.



3) 모델 학습과정 설정하기

학습에 대한 설정을 수행.

손실 함수 및 최적화 방법을 정의.

compile() 함수를 사용.



4) 모델 학습시키기

훈련셋을 이용하여 구성한 모델로 학습.

fit() 함수를 사용.



5) 학습과정 살펴보기

모델 학습 시 훈련셋, 검증셋의 손실 및 정확도를 측정.(반복횟수 조정)



6) 모델 평가하기

준비된 시험셋으로 학습한 모델을 평가.

케라스에서는 evaluate() 함수를 사용.



7) 모델 사용하기

임의의 입력으로 모델의 출력을 얻습니다.

predict() 함수를 사용.



반응형