본문 바로가기

반응형

딥러닝

(31)
6장 2개의 층을 연결 - 다층 신경망 (2) 6-2 2개의 층을 가진 신경망 구현 - 하나의 층에 여러개 뉴런 사용 - 출력을 하나로 모으기 - 은닉층이 추가된 신경망 - 다층 신경망 개념 정리 n개의 입력이 m개의 뉴런으로 입력 은닉층을 통과한 값들은 출력층으로 모임 활성화 함수는 층마다 다를 수 있지만 한 층에서는 같아야 함 모든 뉴런이 연결되어 있으면 완전 연결 신경망 - 다층 신경망에 경사 하강법 적용 ※ 해당 내용은 의 내용을 토대로 학습하며 정리한 내용입니다.
6장 2개의 층을 연결 - 다층 신경망 (1) 6-1 신경망 알고리즘을 벡터화하여 한 번에 전체 샘플 사용 - 벡터화 벡터화(vectorization)된 연산을 사용하면 알고리즘의 성능을 높일 수 있음 - 벡터 연산과 행렬 연산 - SingleLayer 클래스에 배치 경사 하강법 적용 1. 넘파이와 맷플롯립 임포트 import numpy as np import matplotlib.pyplot as plt 2. 위스콘신 유방암 데이터 세트를 훈련, 검증, 테스트 세트로 나누기 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split cancer = load_breast_cancer() x = cancer.data y = cance..
5장 훈련 노하우 배우기 (3) - 로지스틱 회귀에 규제 적용 1. 그레이디언트 업데이트 수식에 페널티 항 반영 def __init__(self, learning_rate=0.1, l1=0, l2=0): self.w = None self.b = None self.losses = [] self.val_losses = [] self.w_history = [] self.lr = learning_rate self.l1 = l1 self.l2 = l2 2. fit() 메서드에서 역방향 계산 수행 시 그레이디언트에 페널티 항의 미분값 더함 def fit(self, x, y, epochs=100, x_val=None, y_val=None): self.w = np.ones(x.shape[1]) # 가중치를 초기화합니다. self.b = 0 # 절편을..
5장 훈련 노하우 배우기 (2) 5-2 과대적합과 과소적합 - 학습 곡선을 통한 과대적합과 과소적합 알아보기 과대적합(overfitting): 모델이 훈련 세트에서는 좋은 성능을 내지만 검증 세트에서는 낮은 성능을 내는 경우 과소적합(underfitting): 훈련 세트와 검증 세트의 성능에는 차이가 크지 않지만 모두 낮은 성능을 내는 경우 훈련 세트의 크기와 과대적합, 과소적합 분석 첫번째 곡선: 과대적합 (분산이 크다: high variance) 두번째 곡선: 과소적합 (편향이 크다: high bias) 세번째 곡선: 과대적합과 과소적합 사이 절충점 찾은 것 에포크와 손실 함수 그래프로 과대적합과 과소적합 분석 왼쪽 그래프: 검증 세트의 손실과 훈련 세트의 손실 (최적점 이후에도 계속해서 훈련세트로 모델을 학습시키면 모델이 과대적합..
5장 훈련 노하우 배우기 (1) 5-1 검증 세트를 나누고 전처리 과정 배우기 - 테스트 세트로 모델 튜닝 로지스틱 회귀로 모델 훈련하고 평가 1) cancer 데이터 세트를 읽어 들여 훈련 세트와 테스트 세트로 나눔 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split cancer = load_breast_cancer() x = cancer.data y = cancer.target x_train_all, x_test, y_train_all, y_test = train_test_split(x, y, stratify = y, test_size=0.2, random_state=42) 2) SGDClassifier ..
4장 분류하는 뉴런 만들기-이진분류 (3) 4-6 로지스틱 회귀 뉴런으로 단일층 신경망 만들기 - 일반적인 신경망 입력층(input layer), 은닉층(hidder layer), 출력층(output layer) - 단일층 신경망 - 확률적 경사 하강법, 배치 경사 하강법 - 단일층 신경망 클래스 class SingleLayer: def __init__(self): self.w = None self.b = None self.losses = [] def forpass(self, x): z = np.sum(x * self.w) + self.b # 직선 방정식 계산 return z def backprop(self, x ,err): w_grad = x *err # 가중치에 대한 그레이디언트 계산 b_grad = 1 *err # 절편에 대한 그레이디언트 ..
4장 분류하는 뉴런 만들기-이진 분류 (1) 4-1 초기 인공지능 알고리즘과 로지스틱 회귀 - 퍼셉트론 마지막 단계에서 샘풀을 이진 분류하기 위하여 계단함수를 사용 - 아달린 적응형 선형 뉴런 -로지스틱 회귀 마지막 단계에서 임계 함수를 사용하여 예측을 수행 4-2 시그모이드 함수로 확률 만들기 - 시그모이드 함수 출력값z를 0~1 사이의 확률값으로 변화시켜주는 역할로, 시그모이드를 통과한 값 a가 0.5 이상이면 양성 클래스, 이하면 음성 클래스 - 오즈 비(odds ratio) 성공 확률과 실패 확률의 비율을 나타내는 통계 - 로짓 함수(logit function) 오즈 비에 로그 함수를 취하여 만든 함수 - 로지스틱 함수 시그모이드 함수 - 로지스틱 회귀 정리 4-3 로지스틱 손실 함수 경사 하강법에 적용 로지스틱 회귀와 같은 분류의 목표는 ..
3장 머신러닝 기초 다지기-수치 예측 (2) 3-3 손실 함수와 경사 하강법의 관계 - 가중치에 대하여 제곱 오차 미분하기 y_hat = x_i * w + b err = y_i - y_hat w_rate = x_i w = w +w_rate *err - 절편에 대하여 제곱 오차 미분하기 err = y_i - y_hat b = b+1 *err 3-4 선형 회귀를 위한 뉴런 - Neuron 클래스 만들기 1. init()메서드 작성하기 def __init__(self): self.w = 1.0 self.b =1.0 2. 정방향 계산 만들기 def forpass(self, x): y_hat = x * self.w + self.b return y_hat 3. 역방향 계산 만들기 def backprop(self, x, err): w_grad = x * err..
2장 최소한의 도구로 딥러닝 시작 2-1 구글 코랩 - 구글이 제공하는 주피터 노트북 - 구글 클라우드의 가상 서버를 활용 (https://colab.research.google.com/) 2-2 딥러닝을 위한 도구들 알아보기 - 파이썬 리스트 my_list = [10, 'hello list', 20] print(my_list[1]) ##결과 : hello list my_list_2 = [[10, 20, 30], [40, 50, 60]] print(my_list_2[1][1]) ##결과:50 - 넘파이 준비하기 import numpy as np print(np.__version__) - 넘파이로 배열 만들기 1) array() 함수로 2차원 배열만들기 my_arr =np.array([[10, 20, 30], [40, 50, 60]]) p..
딥러닝과 머신러닝, 데이터사이언스 딥러닝 VS 머신러닝 이전 글에서 언급한 내용을 통해 알아보면 머신러닝과 딥러닝이 모두 AI의 한 종류이며, 딥러닝은 머신러닝의 한 종류입니다. 다시 말해, 딥 러닝은 그 자체가 AI의 하위 유형인 기계 학습의 하위 유형으로 이 두 종류 AI의 차이점은 AI 모델에 제시된 데이터에 있습니다. 일반적으로 머신러닝의 접근 방식에는 구조화된 데이터, 즉 식별하려는 항목에 대한 레이블이 포함된 데이터가 필요합니다. 예를 들어, 데이터 과학자들이 모델에 개와 고양이의 이미지를 제공한다면, 사용자는 직접 각 이미지에 개 또는 고양이라는 라벨을 붙여야 합니다. 그렇게 함으로써, 기계 학습 알고리즘은 두 종의 차이를 학습할 수 있었습니다. 모델이 제대로 작동하지 않으면 사용자가 관련 조건을 조정하고 다시 시도해야 합니..

반응형