본문 바로가기

머신러닝, 딥러닝

(43)
혼자 공부하는 머신러닝+딥러닝 6주차 인공 신경망 생물학적 뉴런에서 영감을 받아 만든 머신러닝 알고리즘입니다. 신경망은 기존의 머신러닝 알고리즘으로 다루기 어려웠던 이미지, 음성, 텍스트 분야에서 뛰어난 성능을 발휘하면서 크게 주목받고 있습니다. 인공 신경망 알고리즘을 종종 딥러닝이라고도 부릅니다. 밀집층 Dense 가장 간단한 인공 신경망의 층입니다. 뉴런들이 모두 연결되어 있기 때문에 완전 연결층Fully Connected Layer라고도 부릅니다. 특별히 출력층에 밀집층을 사용할 때는 분류하려는 클래스와 동일한 개수의 뉴런을 사용합니다. 입력층과 출력층 사이에 있는 모든 층을 은닉층hidden layer이라고 부릅니다. 원-핫 인코딩 정수값을 배열에서 해당 정수 위치의 원소만 1이고 나머지는 모두 0으로 변환합니다. 이런 변환이 필요한..
혼자 공부하는 머신러닝+딥러닝 5주차 [기본 미션] K-평균 알고리즘 1. 데이터에서 무작위로 k개의 클러스터 중심을 정하고(Initial centroids), 2. 클러스터의 중심에서 가장 가까운 샘플들을 하나의 클러스터로 묶는다.(Iteration 1 에서 구역을 나눔), 3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경하고, 4. 클러스터 중심에 변화가 없을 때까지 3-4를 반복하는 것이 k-평균 알고리즘이다. [선택 미션] 1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇 개일까요? -> 20개. 특성이 20개이니 주성분도 20개가 된다. 2. 샘플 개수가 1,000개이고 특성 개수는 100개인 데이터셋이 있습니다. 즉 이 데이터셋의 크기는 (1000, 100) 입니다. 이 ..
혼자 공부하는 머신러닝+딥러닝 4주차 [기본 미션] Cross Validation이란? 데이터를 train set, test set로 분할하고 모델의 성능을 올바르게 예측하려면 테스트 세트는 모델을 만들고 나서 마지막에 딱 한번만 사용하는 게 좋습니다. 테스트 세트를 사용하지 않고 모델이 과대적합인지, 과소적합인지 판단하는 간단한 방법은 훈련 세트를 검증 세트로 나누는 겁니다. 훈련 세트:검증 세트:테스트 세트를 6:2:2로 나누는 방법도 있지만, 훈련 세트 자체를 N등분 하여 차례대로 검증 세트로 쓰고, 이 결과를 종합하여 본다면 보다 안정적인 검증 점수를 얻고, 훈련에 더 많은 데이터를 사용할 수 있습니다. 분류 문제의 경우는 정답 클래스별로 데이터의 비율이 다를 수 있는데요, 데이터를 N등분할 때 각각의 클래스별로 N등분이 담기게 하려..
혼자 공부하는 머신러닝+딥러닝 3주차 [기본 미션] 로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요? -> 시그모이드 함수. 로지스틱 회귀는 선형회귀와 동일하게 선형 방정식을 학습한다. z = a * X1 + b * X2 + c * X3 + d * X4 + e a, b, c, d는 가중치, 혹은 계수이고 e는 절편이다. 여기서 z가 아주 큰 음수일 땐 0이 되고, z가 아주 큰 양수일 때 1이 되도록 바꾸기 위해서 시그모이드 함수를 사용한다. 사이킷런은 위의 z값에 따라 출력된 시그모이드 함수의 출력이 0.5보다 이하이면 음성 클래스(0), 0.5를 초과하면 양성 클래스(1)로 분류한다. [선택 미션] 1. 과소적합 2. 과대 적합
혼자 공부하는 머신러닝+딥러닝 2주차 [기본 미션] # k-최근접 이웃 회귀 knr = KNeighborsRegressor() # 5부터 44까지의 데이터를 2차원 배열로 만들음 x = np.arange(5, 45).reshape(-1, 1) for n in [1, 5, 10]: knr.n_neighbors = n knr.fit(train_input, train_target) prediction = knr.predict(x) plt.scatter(train_input, train_target) plt.plot(x, prediction) plt.title(f'n_neighbors = {n}') plt.xlabel('length') plt.ylabel('weight') plt.show() [선택미션] 파라미터란? 한국어로 매개변수이며, 모델 내..
혼자 공부하는 머신러닝+딥러닝 1주차 앞으로 6주간 한빛미디어의 혼자 공부하는 머신러닝+딥러닝 혼공학습단에 참여하게 되었다. 데이터 엔지니어로 일을 시작하면서 머신러닝, 딥러닝 고작 반년 안했다고 다 까먹었는데, 이번 기회에 기초부터 탄탄하게 다져야겠다...!!! [기본 미션] 코랩 실습 화면 캡쳐 [선택 미션] 2-1 확인문제 풀고, 풀이 과정 정리 확인문제 1. 머신러닝 알고리즘의 한 종류로서 샘플의 입력과 타깃(정답)을 알고 있을 때 사용할 수 있는 학습 방법은 무엇인가요? 1. 지도 학습 2. 비지도 학습 -> 타깃이 없는 데이터에 적용하는 머신러닝 알고리즘 3. 차원 축소 -> 비지도 학습의 하나로 데이터가 가지고 있는 특성의 개수를 줄이는 방법이다. 4. 강화 학습 -> 체스, 바둑과 같이 경기를 이길 때 보상을 주며 학습하는 방..
gcp jupyter notebook에서 ffmpeg_extract_subclip로 동영상 자르고 cloud storage에 넣기 코랩에서는 os에 현재 경로가 저장되어서 코드 짜기가 어렵지 않았는데, gcp로 환경을 옮기면서 gcp cloud storage에 있는 동영상들을 url로 받아와 ffmpg_extract_subclip에 넣고 + output도 클라우드 스토리지에 넣어주느랴 좀 헤맸다. from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip from google.cloud import storage from google.cloud.storage import Blob client = storage.Client(project="your_project") bucket = storage.Client().get_bucket('your_bucket') for blob in..
AI HUB 이상행동 탐지 데이터 AutoML로 학습시키기 - 1 AutoML로 동작 인식(농구, 축구, 야구 등의 행동의 종류와 그 행동이 시작되는 시간을 인식) 하려면 동영상 데이터와 데이터 가져오기 파일(JSON 혹은 CSV)가 필요하다. 먼저 동영상 데이터는 AI HUB의 이상행동 CCTV 영상을 받았다. 다 다운받으면 크기가 5테라라;; 3개 레이블에 대해 각각 6개의 상황에 대해 받았다. 이래도 380G.... 동영상 사이즈가 3840 X 2160으로 커서 그런데, AutoML의 장점은 가로 사이즈가 1024픽셀을 넘어가면 알아서 줄여준다는(?) 점인 것 같다. 품질이 손상된다는거나 사이즈 줄여준다는거나 그게 그거 아닐까 라벨당 동영상 프레임 100개 이상을 사용하는 게 좋고, 동영상을 1-2초 보고는 학습시킬 수 없다길래 기존에 파일 크기가 너무 커서 4초..