no image
[머신러닝과 딥러닝] 19. CNN 기초
1. CNN이란? Convolutional Neural Networks의 약자이다. 합성곱 인공 신경망 전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 부팅ㄴ 형태 컨볼루셔널 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류 CNN의 특징을 알려주는 부분 : Feature Maps 딥러닝 부분을 알려주는 부분 : Fully connected layer 2. CNN을 사용하는 이유 이미지를 분류할 때 DNN(Deep Neural Network)의 문제점이 있었음 일반적인 DNN은 1차원 형태의 데이터를 사용해야 함. 2차원 이상의 데이터가 입력되는 경우 flatten 시켜서 한 줄로 데이터를 변환 후 넣어야 함. 이미지의..
2024.01.10
no image
[머신러닝과 딥러닝] 18. 비선형 활성화 함수
1. 비선형 활성화 함수(Activation Functions) 신경망의 성능을 향상시키기 위해 사용됨 선형 함수는 입력값과 가중치를 곱한 결과를 그대로 출력하기 때문에 신경망에서 여러 개의 활성화 함수를 사용한다면 최종 출력값은 입력값과 가중치의 선형 조합으로 표현되므로 입력 데이터의 비선형 관계를 표현할 수 없음 신경망이 입력 데이터의 비선형 관계를 잘 학습할 수 있도록 하기 위해 비선형 활성화 함수가 필요함. 시그모이드(Sigmoid) 1. 필요모듈 임포트 import numpy as np import matplotlib.pyplot as plt def sigmoid(x): return 1 / (1 + np.exp(-x)) x = np.arange(-5.0, 5.0, 0.1) y = sigmoid(..
2024.01.10
no image
[머신러닝과 딥러닝] 17. 딥러닝(AND, OR, XOR 게이트)
뉴런(neuron)의 종류 1-1. 생물학적 뉴런 인간의 뇌는 수십억 개의 뉴런을 가지고 있음. 뉴런은 화학적, 전기적 신호를 처리하고 전달하는 연결된 뇌신경 세포 1-2. 인공 뉴런 1943년에 워렌 맥컬록, 월터 피츠가 단순화된 뇌세포 개념을 발표함. 신경 세포를 이진 출력을 가진 단순한 논리 게이트라고 설명 생물학적 뉴런의 모델에 기초한 수학적 기능으로, 각 뉴런이 입력을 받아 개별적으로 가중치를 곱하여 나온 합계를 비선형 함수를 전달하여 출력을 생성한것을 뜻함. 2. 퍼셉트론(Perceptron) 인공 신경망의 가장 기본적인 형태로 1957년에 처음 소개되었음. 입력과 출력을 가진 단일 뉴런 모델을 기반으로 개발됨 초기의 기계 학습 알고리즘 중 하나로 이진 분류 문제를 해결하기 위해 설계되었음. ..
2024.01.10
no image
[머신러닝과 딥러닝] 16. 데이터 로더(손글씨 인식 모델)
1. 데이터 로더(Data Loader) 데이터의 양이 많을 때 배치 단위로 학습하는 방법 HTML 삽입 미리보기할 수 없는 소스 손글씨 인식 모델 만들기 실습 1. 필요모듈 임포트 import torch import torch.nn as nn import torch.optim as optim import matplotlib.pyplot as plt from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split 2. CPU -> GPU 변경 device = 'cuda' if torch.cuda.is_available() else 'cpu' print(device) # 결과값 => cuda 3. 데이터..
2024.01.10
no image
[머신러닝과 딥러닝] 15. 파이토치로 구현한 논리회귀_2(경사하강법 + 와인 품종 예측)
경사 하강법의 종류 1-1. 배치 경사 하강법 가장 기본적인 경사 하강법(Vanlilla Gradient Descent) 데이터셋 전체를 고려하여 손실함수를 계산함 한 번의 Epoch에 모든 파라미터 업데이트를 단 한번만 수행 Batch의 개수와 Iteration은 1이고, Batch Size는 전체 데이터의 갯수 파라미터 업데이트할 때 한 번에 전체 데이터셋을 고려하기 때문에 모델 학습 시 많은 시간과 메모리가 필요하다는 단점이 있음 1-2. 확률적 경사 하강법 확률적 경사 하강법(Stochastic Gradient Descent)은 배치 경사 하강법이 모델 학습시 많은 시간과 메모리가 필요하다는 단점을 개선하기 위해 제안된 기법을 뜻함. Batch Size를 1로 설정하여 파라미터를 업데이트 하기 때..
2024.01.10
no image
[머신러닝과 딥러닝] 15. 파이토치로 구현한 논리회귀_1
1. 단항 논리회귀(Logistic Regrssion)실습 분류를 할 때 주로 사용하며, 선형 회귀 공식으로부터 나왔기 때문에 논리회귀라는 이름이 붙여짐 직선 하나(선형 회귀)를 사용해서 분류를 예측한다면 제대로 에측하지 못할 경우가 많음 HTML 삽입 미리보기할 수 없는 소스 Sogmoid 함수(Logistic 함수)를 사용하여 정확도를 높일 수 있음 HTML 삽입 미리보기할 수 없는 소스 2. 시그모이드(Sigmoid)함수 예측값을 0에서 1사이의 값이 되도록 만듦 0에서 1사이의 연속된 값을 출력으로 하기 때문에 보통 0.5를 기준으로 구분 실습 진행 1. 필요 모듈 임포트 import torch import torch.nn as nn import torch.optim as optim import ..
2024.01.10