320x100
320x100

1. 파이썬 기초

- 필요 라이브러리 : numpy / matplotlib

- 개발환경 : Google Colab 

- 필요 개념

ㆍ자료형 / 변수 / 리스트 / 딕셔너리 / bool / if-else / for / function / class / broadcast

ㆍtype(변수)

ㆍnumpy

ㆍmatplotlib.pyplot

 

- numpy 활용

ㆍnp.array([[1,2,3],[4,5,6]]) : 행렬 생성

ㆍnp.ndim() : 행렬의 차원수 출력 

ㆍnp.shape() : 행렬의 모양 출력

ㆍnp.dot(a,b) : 행렬의 곱

 

 

 

 

2. 퍼셉트론

- 개념

 : 1957년 프랑크 로젠 블라트가 고안한 알고리즘

 : 신경망(딥러닝)의 기원

 

- 퍼셉트론의 관련 개념

ㆍNode (Neuron) : 데이터를 처리하는 단위 

ㆍWeight : 노드의 중요도를 조절하는 값

ㆍtheta : 결과 출력의 기준 값 (임계 값)

 

- 다층퍼셉트론

 : 퍼셉트론을 여러층으로 표현한 알고리즘

 : 퍼셉트론으로는 AND와 OR, NAND를 표현할 수 있으나 XOR을 표현할 수 없기 때문에 다층으로 쌓아 구현

 

=> 참조 : 2mukee.tistory.com/11

 

 

 

 

3. 신경망

- 개념

 : 학습을 통해 적절한 가중치와 편향을 조절하여 결과를 출력하는 알고리즘

 : 다층 퍼셉트론에서 은닉층을 늘려 구성

 

- 신경망의 구조

ㆍ입력층 : 데이터가 입력되는 노드의 충

ㆍ은닉층 : 입력층과 출력층 사이에 숨겨진 노드의 층

ㆍ출력층 : 출력을 담당하는 노드의 층

=> 은닉층과 출력층에서만 가중치를 가짐

 

- 활성화 함수

 : 입력값을 은닉층에서 연산한 후 출력할 때 일정기준에 따라 출력값을 변화시키는 비선형 함수

 : 입력신호의 총합으로 노드의 활성화 여부를 결정하는 함수

 

- 은닉층의 활성화 함수 종류

ㆍ계단 함수

  : 입력값이 0이상이면 1을 출력하고 그 미만으로는 0을 출력

import numpy as np
import matplotlib.pylab as plt

def step_function(x):
  return np.array(x>0, dtype=np.int)

x = np.arange(-5.0, 5.0, 0.1)  # -5.0에서 5.0까지 0.1 간격으로 벡터 생성
y = step_function(x)
plt.plot(x,y)
plt.ylim(-0.1, 1.1)
plt.show()

ㆍSigmoid

  : 임계 값을 기준으로 0과 1사이의 값을 출력

def sigmoid(x):
  return 1 / (1 + np.exp(-x))

x = np.arange(-5.0, 5.0, 0.1)  # -5.0에서 5.0까지 0.1 간격으로 벡터 생성
y = sigmoid(x)
plt.plot(x,y)
plt.ylim(-0.1, 1.1)
plt.show()

ㆍReLU

  : 입력이 0 이상이면 값을 그대로 출력하고 이하일 경우 0을 출력

def relu(x):
  return np.maximum(0,x)

x = np.arange(-5.0, 5.0, 0.1)  # -5.0에서 5.0까지 0.1 간격으로 벡터 생성
y = relu(x)
plt.plot(x,y)
plt.ylim(-0.1, 1.1)
plt.show()

 

 

- 출력층의 활성화 함수

ㆍsoftmax

  : 계산결과를 확률로 표현

  : 주로 분류 문제에 이용

def softmax(a):
  exp_a = np.exp(a)
  sum_exp_a = np.sum(exp_a)
  y = exp_a / sum_exp_a
  return y

a = np.array([0.3, 2.9, 4.0])
print(softmax(a))
print(np.sum(softmax(a)))

[0.01821127 0.24519181 0.73659691]

1.0

 

 

- 신경망 관련 개념

ㆍPre processing (전처리)

  : 모델의 식별능력과 학습속도 향상을 위해 입력 데이터에 특정 변환을 가하는 것

  : 정규화 / 백색화 등

 

ㆍNormalization (정규화)

  : 데이터를 특정 범위로 변환하는 처리

  ex) 0~255의 픽셀 범위를 0.0 ~ 1.0으로 변환

 

ㆍwhitening (백색화)

  : 전체 데이터를 균일하게 분포시키는 작업   

 

ㆍbatch processing (배치 처리)

  : 데이터를 하나로 묶어 한꺼번에 처리하는 방법

  : batch (묶음)

 

 

- 참고 <기계학습 문제>

ㆍClassification (분류)

  : 입력 데이터의 종류를 분류하는 문제

  : 출력층 활성화 함수로 소프트맥스 이용

  : 출력층의 뉴런 수를 분류하려는 클래스와 같게 설정

  ex) 사진속 인물의 성별을 분류

 

ㆍRegression (회귀)

  : 입력 데이터의 연속적인 수치를 예측하는 문제

  : 출력층 활성화 함수로 항등함수 이용

  ex) 사진속 인물의 몸무게를 예측

 

 

 

 

 

 

 

300x250
728x90