BOAZ 12

2. Docker

- Docker는 복잡한 리눅스 애플리케이션을 컨테이너로 묶어서 실행이 가능합니다. - 서버에서 여러 개의 컨테이너를 실행하고 이미지 저장과 배포가 가능합니다. 애플리케이션을 신속하게 구축, 테스트, 배포할 수 있는 플랫폼으로 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징 합니다. 컨테이너: 라이브러리, 시스템 도구, 코드 등 소프트웨어 실행에 필요한 모든 것을 포함! (도커는 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 도와주는 도구입니다.) 가상화 기존의 가상화 기술은 하이퍼 바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식입니다. 소프트웨어를 사용하여 프로세서, 메모리, 스토리지 등과 같은 단일 컴퓨터의 하드웨어 요소를 다수의 가상 컴퓨터로 분할할 수 ..

6. GAN and Reinforcement Learning

GAN은 생산적 적대 신경망(Generative Adversarial Network)의 약자이며 비지도학습(Unsupervised Learing) 입니다. Generator가 위조 데이터를 만들면 Discrminator가 진짜인지 가짜인지 구분을 하여 판별기를 속일 수 있도록 Generator를 훈련해야 합니다. Discriminator는 실제 데이터로 훈련을 진행해야 합니다. Loss function $min_Gmax_D \, V(D,G) = E_{x ~ p_{data}}(x) [log \, D(x)] + E_{z~p_z}(z)[log(1 - D(G(z)))]$ 실제 데이터 분포에서 샘플링한 데이터 x와 임의의 데이터 분포에서 샘플링한 데이터 z D(x)는 1이 나오도록 학습하고 D(z)는 0이 나오도..

5. RNN and LSTM

일반적인 feed forward 신경망은 흐름이 단방향이라 시계열 데이터의 성질을 충분히 학습하기 어렵습니다. 다음과 같이 문장 내 단어 순서가 무시되거나 아니면 맥락의 크기에 비례해 가중치 매개변수가 늘어나게 됩니다. 이러한 문제를 해결하기 위해 RNN(순환 신경망)을 통해 과정의 정보를 기억하는 동시에 최신 데이터를 갱신하는 신경망이 등장하게 됩니다. 입력은 $(x_t, h_{t-1})$이고 각 t일 때 RNN의 입력은 $x_t$와 한 시각 전의 RNN 계층으로부터의 출력인 $h_{t-1}$로 이루어져 있습니다. 출력은 $h-t = tanh(h_{t-1}W_h + x_tW_x + b)$으로 현재 출력과 그 이전의 출력을 통해 출력이 결정됩니다. (과거의 정보를 기억한다.) 이러한 RNN은 Long-T..

1. CS 기초정리

운영체제 우리가 컴퓨터를 사용할 때 하드웨어를 관리하고 응용 프로그램과 하드웨어 사이의 인터페이스 역할을 하여 시스템 동작을 제어하는 소프트웨어가 운영체제입니다. 운영체제는 시스템의 자원과 동작을 관리하여 프로그램에 대한 서비스를 지원하는 역할을 해줍니다. - 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있게 인터페이스를 제공해주는 시스템 소프트웨어 1. 프로세스(process): 프로세스란 실행 중에 있는 프로그램을 의미합니다. 즉 운영체제로부터 메모리 공간을 할당받아 실행 중인 것입니다. 2. 프로그램(program): 파일 단위로 저장 장치에 저장되어 있고 실행되지 않은 코드 상태입니다. 3. 스레드(thread): 프로세스를 구성하는 독립적인 실행 단위입니다. 스레드는 프로세스에서 실행 제어만..

4. CNN

Convolution Neural Network란 시각적 이미지 분석에서 가장 일반적으로 사용되는 인공신경망의 한 종류로, 입력 이미지로부터 특징을 추출하여 입력 이미지가 어떤 이미지인지 클래스를 분류합니다. - 다양한 이미지 처리에 유용한 알고리즘이고 기존에 image 인식에 사용하던 Affine 계층에 바로 이미지를 넣는 FCNN이 가지고 있는 한계를 개선하기 위해 개발되었습니다. FCNN은 input image를 행으로 flatten 하여 이것을 입력으로 넣어주는데 이때 이미지의 형상이 flatten으로 소실되어 픽셀들 간의 상관관계를 잃게 된다는 문제가 있습니다. CNN의 구조는 FCNN의 문제점을 해결하기 위해 앞부분에 convolution layer와 pooling layer를 추가한 방법입니..

3. Ensemble and Random Forest

앙상블(Ensemble)은 서로 다른 여러 모델의 예측 결과를 바탕으로 새로운 모델을 만들어 더 정확한 예측 결과를 도출해내는 방법을 말합니다. 다수의 모델의 결과를 통해 예측을 진행하기에 단일 모델보다 신뢰성이 높은 예측 결과를 얻을 수 있습니다. 앙상블 1. 보팅(Voting) 보팅은 서로 다른 알고리즘의 예측 결과를 투표하여 최종 예측 결과를 선정하는 방식입니다. 하드 보팅은 다수의 분류기가 예측한 결괏값을 최종 결과로 선정하는 방법이고 소프트 보팅은 모든 분류기가 예측한 레이블 값의 결정 확률 평균을 구한 뒤 가장 확률이 높은 레이블 값을 최종 결과로 선정합니다. - 보팅은 다음과 같은 하이퍼 파라미터를 가지고 있습니다. 1. estimators: 보팅에 사용될 여러 classifier 객체를 튜..

2. Decision Tree and SVM

의사결정나무(Decision Tree)는 머신러닝의 학습 알고리즘으로 방정식 형태가 아닌 트리 형태의 목적함수를 가집니다. 위 사진처럼 트리 형태로 데이터를 분류하는데 각각의 질문이 담긴 부분을 node라고 하며 해당 질문에 True, False를 나타내 주는 화살표를 edge라고 하며 최상위 node를 제외한 층수를 depth라고 합니다. 위에 결정트리는 독립변수가 수치형으로 이루어진 트리이고 범주형으로 이루어진 형태도 존재합니다. 첫 부분에서 결정트리는 방정식 형태가 아니라고 했었는데 그 이유는 이전의 선형회귀 처럼 가설 함수가 $Y = Wx + b$ 형태가 아니라 True/False로 데이터를 나눠서 점점 작은 형태의 가설 함수를 가지기 때문입니다. - 모든 데이터가 단일 클래스로 분할되는 순간 학..

[핸즈온 머신러닝] 3장

성능 측정 classification에 대한 평가를 진행할 때 사용하는 방법들에 대해 알아보겠습니다. 1. k-fold Cross Validation 분류를 진행하고 나서 성능 측정을 하는 방법 중에는 k-fold cross validation이 존재하는데 훈련 세트를 k개의 폴드로 나누고 각 폴드에 대해 예측을 만든 다음 평가하기 위해 나머지 폴드를 훈련시킨 모델에 사용하는 방법입니다. 2. Precision/Recall and Confusion Matrix 분류기의 성능을 평가하는데 오차 행렬(Confusion Matrix)로 각각의 분류 결과를 알 수 있습니다. 이런 오차 행렬의 정보를 요약한 지표가 존재하는데 그것이 정밀도(Precision)와 재현율(Recall)입니다. 정밀도는 $\frac {..

1. Classification and Regression

분류(Classification)는 data set(x, y)를 가지고 학습을 진행합니다. 그 이후 새로운 데이터 x'의 범주 y'을 예측하면 됩니다. 분류는 스팸메일, 게임 어뷰저, 신문기사 분류 등등에 사용됩니다. 특징으로는 Lable로 구분되는 값으로 값이 연속적이지 않습니다. 회귀(Regression)는 data set(x, y)를 가지고 x의 숫자 y를 예측하는 문제를 말합니다. 주가 예측, 경제 성장률 예측 등등에 활용되며 값이 연속적인 실수라는 특징이 있습니다. Regression 위에서 말했듯이 회귀 문제는 주어진 데이터를 학습해 연속적인 예측값을 출력하는 모델입니다. 모델이란 해당 데이터들을 가장 잘 표현해줄 것 같은 가설(수학식으로 표현 되는 함수)로도 생각할 수 있습니다. $H(x) ..

[핸즈온 머신러닝] 2장 머신러닝 프로젝트 처음부터 끝까지

실제로 작업할 때 전체적인 흐름을 보자면 1. 큰 그림 보기 2. 데이터 구하기 3. 데이터로부터 통찰을 얻기 위해 탐색, 시각화 4. 머신러닝 알고리즘을 위해 데이터 준비 5. 모델을 선택하고 훈련 6. 모델을 상세하게 조정 7. 솔루션 제시 8. 시스템 런칭, 모니터링하면서 유지 보수 첫 번째 큰 그림 보기 예시를 봐보겠습니다. - 캘리포니아 인구조사 데이터를 사용해 캘리포니아의 주택 가격 모델 만들기 - 이 데이터로 모델을 학습시켜서 다른 측정 데이터가 주어졌을 때 그 구역의 중간 주택 가격을 예측해야 한다. - 문제를 정의하고 성능 측정 지표를 선택한다. 문제 정의에서는 비즈니스의 목적이 정확이 무엇인지, 현재 솔루션 구성이 어떻게 되는지, 어떤 머신러닝으로 문제를 해결할 것인지 이렇게 크게 3가..

반응형