인공지능(32)
-
[밑바닥딥러닝] 7. 경사하강법(gradient descent)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 지금까지 퍼셉트론의 개념을 통해 입력값(input)과 가중치(weigth) 그리고 편향(bias)를 통해 결과를 도출하고, 손실함수를 통해 예측값과 실제(타깃)값과의 괴리를 측청하여 이를 가중치 업데이트에 반영하는 방법을 알아보았다. 이번에는 경사 하강법이라는 개념을 통해 실제로 가중치를 업데이트하는 방법을 알아보도록 하자. 경사하강법(gradient descent) 산에 조난자가 있다고 가정하자. 이 조난자는 눈이 다치는 바람에 앞을 볼 수 없고, 다시 베이스 캠프로 돌아가기 위해 경사를 더듬에서 원래 출발점이 있던 곳으로 내리막길을 따라 내려가야한다. 내려가다보면 내리막을 멈추고 어느 순간 ..
2021.10.01 -
[밑바닥딥러닝] 6. 수치 미분, 편미분
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 기계학습에서 학습이 이루어지는 근간이자 수단이 바로 '미분'이다. 이 미분이란 무엇이고, 기계 학습에서 어떻게 이용될까? 수치 미분 / 편미분 In mathematics, the derivative of a function of a real variable measures the sensitivity to change of the function value (output value) with respect to a change in its argument (input value) 출처 : https://en.wikipedia.org/wiki/Derivative 위키디피아에 따르면 미분은 어떠한 ..
2021.10.01 -
[밑바닥딥러닝] 5. 신경망 학습 - 손실 함수, 미니 배치 학습
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 기계학습에서 '학습'이란 훈련 데이터(입력, 타깃)를 통해 가중치 매개변수의 값을 가장 최적의 방향으로 조정하는 과정을 말한다. 이번 장에서는 신경망에서 학습이 이루어지는 원리를 실습을 통해 알아보도록 하자. 훈련 데이터 기계학습에서는 예측 모델을 학습시키기 위해서 훈련 데이터(training data)를 사용한다. 훈련 데이터란 오로지 학습을 위해서 전체 데이터에서 일부분의 데이터를 따로 떼어놓은 데이터들이다. (이후에 훈련 데이터도 하이퍼 파라미터의 조정을 위해서 또 나눠지긴 하지만 일단은 위의 수준까지만 알아두자.) 훈련 데이터로 훈련시킨 예측 모델은 시험 데이터(test data)를 통해..
2021.09.30 -
9-4. 군집(Clustering) - DBSCAN
Kmean 클러스터와 더불어 군집의 대표적인 알고리즘이 DBSCAN이다. DBSCAN의 클러스터링 과정은 다음과 같다. 1. 각 샘플별 기준 거리 ε(입실론) 내 샘플의 갯수를 측정한다. 이 지역을 샘플의 ε-이웃이라고 한다. 2. ε-이웃 내에 적어도 지정된 m개 샘플이 있다면 이를 핵심 샘플로 간주한다. 3. (조건 2를 만족하며) 핵심 샘플의 이웃에 있는 모든 샘플은 동일한 클러스터에 속한다. 4. 핵심샘플도 아니며 이웃도 아니라면 이상치로 판단한다. 출처 : https://en.wikipedia.org/wiki/DBSCAN 위 그림은 DBSCAN에 의해 분류된 케이스를 나타낸다. 지정된 최소샘플수(minPts)는 4로 설정되었고 점 A를 비롯해 빨간색으로 표시된 점들이 핵심 샘플이다. 점 B, C..
2021.05.23 -
9-3. 군집(Clustering) - 준지도 학습
준지도 학습이란 비지도 학습과 지도 학습에 중간 단계에 있는 학습 방법으로 레이블된 샘플의 수가 그렇지 않은 샘플 수에 비해 적을 경우 사용한다. 준지도 학습을 실습을 통해 알아보겠다. X_digits, y_digits = load_digits(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X_digits, y_digits) 먼저 digit 데이터를 호출하고 훈련 세트와 테스트 세트로 나눠준다. n_labled = 50 log_reg = LogisticRegression() log_reg.fit(X_train[:n_labled], y_train[:n_labled]) print(log_reg.score(X_test, y_test)..
2021.05.21 -
9-2. 군집(Clustering) - K평균 클러스터링(2)
K-mean 클러스터링 과정 K-mean 클러스터 알고리즘은 다음과 같다. 1. 센트로이드를 랜덤하게 초기화한다. 2. 센트로이드를 중심으로 샘플에 레이블을 할당한다. 3. 센트로이드를 업데이트한다. 4. 샘플에 레이블을 할당한다. 위 과정을 반복하여 가장 최적의 센트로이드를 추출한다. 이너셔(Inertia), 엘보우(Elbow) 출처 : https://www.kdnuggets.com/2019/08/introduction-image-segmentation-k-means-clustering.html K-mean 클러스터링의 성능 지표를 이너셔(Inertia)라고 한다. 이너셔는 각 샘플과 가장 가까운 센트로이드 사이의 평균 제곱 거리를 측정한 수치이다. 이전 장에서는 클러스터 수를 5개로 지정해줬는데, 그..
2021.05.20