일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 머신러닝
- 배열
- Python
- 스파크 완벽 가이드
- leetcode 819
- 빅데이터를 지탱하는 기술
- docker로 airflow 설치하기
- 블로그 이전했어요
- leetcode 561
- webcrawler
- 컴퓨터구조
- leetcode125
- leetcode 344
- leetcode 234
- ctf-d
- 문자열 조작
- leetcode
- airflow docker
- Hortonworks Sandbox
- leetcode 121
- leetcode 5
- leetcode 238
- wargame.kr
- Hadoop
- 데이터레이크와 데이터웨어하우스
- 올바른 변수명 짓기
- leetcode 49
- MapReduce 실습
- leetcode 937
- leetcode 15
- Today
- Total
목록Study/AI&DeepLearning (29)
HyeM
06_1 신경망 알고리즘을 백터화하여 한 번에 전체 샘플을 사용합니다 사이킷런의 예제 데이터 세트는 2차원 배열로 저장되어 있다. 2차원 배열은 행을 햄플, 열을 특성으로 생각하면 행렬로 이해할 수 있다. 이번에는 행렬 개념을 신경망 알고리즘에 도입해 본다. 백터화 된 연산은 알고리즘의 성능을 올린다. 행렬 연산을 백터화 연산이라고 하는데, 백터화 된 연산은 알고리즘의 성능을 높일 수 있다. 배치 경사 하강법을 SingleLayer 클래스에 적용하면 백터화된 연산을 사용할 수 있다. 이전까지의 실습에서는 경사 하강법 알고리즘들이 알고지름을 1번 반복할 때 1개의 샘플을 사용하는 '확률적 경사 하강법'을 이용했다. 이는 손실 함수의 전역 최솟값을 불안정하게 찾는다. 하지만 배치 경사 하강법은 가중치를 1번..
05-3. 규제 방법을 배우고 단일층 신경망에 적용합니다 규제 : 과대적합을 해결하기 위한 대표적인 방법 - 가중치를 규제하면 모델의 일반화 성능이 올라감 - 가중치를 제한하면 모델이 몇 개의 데이터에 집착하지 않아 일반화 성능을 높일 수 있음 - 대표적인 규제 기법에는 L1 규제와 L2 규제가 있음 - L2 규제가 더 효과가 좋아 널리 사용됨 L1 규제 : 라쏘 모델 w_grad += alpha * np.sign(w) L2 규제 : 릿지 모델 w_grad += alpha * w 대표적인 규제기법인 L1규제와 L2 규제를 살펴보고, SingleLayer 클래스에 적용시켜보자. class SingleLayer: ''' 그레이디언트 업데이트 수식에 패널티 항 반영하기 : L1, l2 규제의 강도를 조절하는 ..
CH 05-1 검증 세트를 나누고 전처리 과정을 배웁니다. 1. 테스트 세트로 모델을 튜닝하기 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.linear_model import SGDClassifier import numpy as np #1. cancer 데이터 읽어들여 훈련 세트와 테스트 세트로 나누기 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=..
04_4 분류용 데이터 세트 준비 유방암 데이터 세트 준비 1. load_breast_cancer() 함수 호출 from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() 2. 입력데이터 확인하기 입력데이터 data와 target 살펴보기 print(cancer.data.shape, cancer.target.shape) 569개 샘플과 30개 특성이 있음 특성이 30개 이므로, 산점도로는 표현하기 어려우니, 박스 플롯으로 각 특성의 사분위를 나타내보기 3. 박스 플롯으로 특성의 사분위 관찰하기 4, 14, 24번째 특성이 다른 값에 비해 분포가 더 큼 4. 눈에 띄는 특성 살펴보기 5. 타깃 데이터 확인하기 타깃데이터는 음성..
04-1 | 초기 인공지능 알고리즘과 로지스틱 회귀를 알아봅니다 . #1. 퍼셉트론 1957년 이진 분류 문제에서 최적의 가중치를 학습하는 퍼셉트론 알고리즘 발표 * 이진 분류 : 임의의 샘플 데이터를 True나 False로 구분하는 문제 직선 방정식을 사용해 선형 회귀와 유사한 구조를 띈다. 하지만 마지막 단계에서 샘플을 이진 분류하기 위해 계단 함수를 사용하고, 계단 함수를 통과한 값을 다시 가중치와 절편으로 업데이트(학습)하는데 사용함. 계단함수는 x가 0보다 크거나 같으면 1로, 0보다 작으면 -1로 분류한다, 즉, 퍼셉트론은 선형함수를 통과한 값 z를 계단 함수로 보내 0보다 큰지 작은지 검사하여 1과 -1로 분류하는 아주 간단한 알고리즘이다. 만약 여러개의 특성 n개를 사용한다면, 선형함수를 ..
지난 단원 복습 - 훈련 데이터 x[n]에 대한 w의 변화율(w_rate)은 x[n]이다. - 가중치 w를 업데이트 하는 방법은 w + w_rate이다. - 절편 b를 업데이트 하기 위해서는 b + 1이다. - 오차 역전파는 y와 y^의 오차(err)를 이용해 가중치와(w)와 절편(b)를 업데이트하는 방법이다. 3-3 | 손실 함수와 경사 하강법의 관계를 알아봅니다. # 손실함수와 경사하강법 손실 함수 예상한 값과 실제 타깃값의 차이를 함수로 정의한 것 경사 하강법 어떤 손실 함수가 정의되었을때, 손실 함수의 최소가 되는 지점을 찾아가는 방법 + 앞에서 '오차를 변화율에 곱하여 가중치와 절편 업데이트하기'는 '제곱 오차'라는 손실 함수를 미분한 것과 같음 # 제곱 오차 제곱 오차를 수식으로 나타내면 다음..
#1. 선형회귀 입력 데이터 x와 타깃 데이터y를 통해 기울기와 절편을 찾는것 #1-1. 데이터 셋 활용하기 사이킷런과 케라스에서 다양한 데이터 세트 제공 이 실습에서는 사이킷런 활용 1. 데이터 준비하기 & 입력과 타깃 데이터의 크기 확인하기 diabetes에는 data와 target 속성이 있음 - data : 442행, 10개 행 -> sample(당뇨병 환자에 대한 특성으로 이루어진 데이터 1세트 - target : 442행 2. 1개의 특성(세번째 특성)과 타깃 데이터간 산점도 그리기 matplotlib의 scatter 함수 3. 훈련 데이터 준비하기 이후 실습을 위하여 데이터 준비함. #2. 경사 하강법 모델이 데이터를 잘 표현할 수 있도록 기울기를 사용하여 모델을 조금씩 조정하는 최적화 알고..
#0. 실습 환경 구글 코랩 #1. 넘파이(Numpy) 저수준 언어라, 배열의 크기가 커져도 높은 성능 보장 배열을 이용한 다양한 통계, 수학 함수 제공함 - 넘파이는 리스트에 숫자만 담을 수 있음 - type() : 넘파일 배열인 지 확인 - 내장 함수 사용 가능 Ex. np.sum(배열이름) - random.randn() : 표준 정규 분포 따르는 난수 생성 #2. 멧플롯립(matplotlib) 그래프 그릴 수 있음 - 선그래프 & 산점도 1. 선 그래프 : plt.plot([], []) #x, y축 좌표 2. 산점도 : plt.scatter([], []) - plt.show() : 좀 더 깔끔하고 보기 좋은 그래프 그려짐 || 위 게시물은 'Do it! 딥러닝 입문' 책을 참고한 글입니다. ||