딥러닝
-
새로운 언어나 프레임워크를 배울 때, 예전에는 두꺼운 책을 하나 사서 1장부터 공부 -> 예제 따라하기 이런식으로 공부를 했었는데요. 그렇게 되면 1장만 열심히 하고 뒤로 갈 수록 공부를 안하게 되더라구요..... 저만 그렇나요?그렇게 기초부터 하나씩 익혀가면 물론 좋겠지만, 사람의 기억력이라는 것이 원래 복습을 안하면 공부한 것에 10%만 남는다고 하잖아요? 그래서 프로그래밍을 아예 모르는 사람이 아니라면 새로운 언어나 프레임워크를 배울 때, 거기에 관련된 개념들의 대표 예제를 먼저 따라해본 후 개념을 대충 익히는 식으로 공부하는 것이 훨씬 효율적이라고 생각합니다. 나중에 실전 프로그래밍을 할 때 비슷한 개념이 나오면 다시 찾아볼때 복습한다고 생각하면서 공부하면 처음부터 두꺼운 책을 공부하는 것과 별로..
[Keras] 튜토리얼14(마지막) - 모델 SAVE, LOAD, Tensorboard 이용하기새로운 언어나 프레임워크를 배울 때, 예전에는 두꺼운 책을 하나 사서 1장부터 공부 -> 예제 따라하기 이런식으로 공부를 했었는데요. 그렇게 되면 1장만 열심히 하고 뒤로 갈 수록 공부를 안하게 되더라구요..... 저만 그렇나요?그렇게 기초부터 하나씩 익혀가면 물론 좋겠지만, 사람의 기억력이라는 것이 원래 복습을 안하면 공부한 것에 10%만 남는다고 하잖아요? 그래서 프로그래밍을 아예 모르는 사람이 아니라면 새로운 언어나 프레임워크를 배울 때, 거기에 관련된 개념들의 대표 예제를 먼저 따라해본 후 개념을 대충 익히는 식으로 공부하는 것이 훨씬 효율적이라고 생각합니다. 나중에 실전 프로그래밍을 할 때 비슷한 개념이 나오면 다시 찾아볼때 복습한다고 생각하면서 공부하면 처음부터 두꺼운 책을 공부하는 것과 별로..
2020.01.12 -
● 스케일링(Scaling)이란?스케일링이란 데이터 전처리 과정의 하나 입니다. 데이터의 값이 너무 크거나 혹은 작은 경우에 모델 알고리즘 학습과정에서 0으로 수렴하거나 무한으로 발산해 버릴 수 있는 것을 방지하거나, 예측 값이 범위를 벗어나는 입력데이터의 값에 더 큰 영향을 받는 것을 방지합니다.스케일링을 통해 다타원의 값들을 비교 분석하기 쉽게 만들어 줍니다.자료의 overflow나 underflow를 방지하고 최적화 과정에서 안정성 및 수렴 속도를 향상시킵니다. 예를 들어 키와 몸무게가 입력 데이터로 주어지고 라벨데이터는 100m달리기에 걸리는 시간을 예측한다고 하면, 키와 몸무게는 서로 범위, Unit이 다르기 때문에 더 큰 값을 가진 키 값이 결과 값에 더 큰 영향을 미치는 것을 방지하기 위해 ..
[Keras] 튜토리얼12 - Scikit-learn의 Scaler● 스케일링(Scaling)이란?스케일링이란 데이터 전처리 과정의 하나 입니다. 데이터의 값이 너무 크거나 혹은 작은 경우에 모델 알고리즘 학습과정에서 0으로 수렴하거나 무한으로 발산해 버릴 수 있는 것을 방지하거나, 예측 값이 범위를 벗어나는 입력데이터의 값에 더 큰 영향을 받는 것을 방지합니다.스케일링을 통해 다타원의 값들을 비교 분석하기 쉽게 만들어 줍니다.자료의 overflow나 underflow를 방지하고 최적화 과정에서 안정성 및 수렴 속도를 향상시킵니다. 예를 들어 키와 몸무게가 입력 데이터로 주어지고 라벨데이터는 100m달리기에 걸리는 시간을 예측한다고 하면, 키와 몸무게는 서로 범위, Unit이 다르기 때문에 더 큰 값을 가진 키 값이 결과 값에 더 큰 영향을 미치는 것을 방지하기 위해 ..
2020.01.05 -
● RNN(Recurrent Neural Network)란? RNN(Recurrent Neural Network)은 일반적인 인공 신경망인 FFNets(Feed-Forward Neural Networks)와 이름에서 부터 어떤 점이 다른지 드러납니다. FFNets는 데이터를 입력하면 연산이 입력층에서 은닉층을 거쳐 출력층까지 차근차근 진행되고 이 과정에서 입력 데이터는 모든 노드를 딱 한번씩 지나가게 됩니다. 그러나 RNN은 은닉층의 결과가 다시 같은 은닉층의 입력으로 들어가도록 연결되어 있습니다. 즉, FFNets는 시간 순서를 무시하고 현재 주어진 데이터만 가지고 판단합니다. 하지만 RNN은 지금 들어온 입력데이터와 과거에 입력 받았던 데이터를 동시에 고려합니다. ○ RNN의 사용RN..
[Keras] 튜토리얼 11 - LSTM(feat. RNN) 구현하기● RNN(Recurrent Neural Network)란? RNN(Recurrent Neural Network)은 일반적인 인공 신경망인 FFNets(Feed-Forward Neural Networks)와 이름에서 부터 어떤 점이 다른지 드러납니다. FFNets는 데이터를 입력하면 연산이 입력층에서 은닉층을 거쳐 출력층까지 차근차근 진행되고 이 과정에서 입력 데이터는 모든 노드를 딱 한번씩 지나가게 됩니다. 그러나 RNN은 은닉층의 결과가 다시 같은 은닉층의 입력으로 들어가도록 연결되어 있습니다. 즉, FFNets는 시간 순서를 무시하고 현재 주어진 데이터만 가지고 판단합니다. 하지만 RNN은 지금 들어온 입력데이터와 과거에 입력 받았던 데이터를 동시에 고려합니다. ○ RNN의 사용RN..
2020.01.04 -
● Bias-Variance Tradeoff 머신러닝을 이용해 분류기를 만들때, 테스트 하는 과정을 거치며 많은 에러들이 나오게 되는데 이런 에러들을 MSE로 분석해보면 Bias와 Variance의 식으로 정리됩니다. Learning Error = Bias + Variance Bias : 학습된 분류기와 실제 값 사이의 제곱 에러, 정확도와 비슷한 개념 Variance : 학습된 분류기들이 각기 다른 학습셋에 성능의 변화정도가 급하게 변하는지 안정적으로 변하는지를 나타내는 척도 ○ High Variance & Low Bias 모델이 높은 variance와 낮은 bias를 가질 때, 일부는 정확하게 매핑되지만 많은 데이터가 정확하게 예측하지 못합니다. 모델을 너무 tight하게 학습하여 데이터가 조금만 변..
[딥러닝] Bias-Variance Tradeoff 와 앙상블● Bias-Variance Tradeoff 머신러닝을 이용해 분류기를 만들때, 테스트 하는 과정을 거치며 많은 에러들이 나오게 되는데 이런 에러들을 MSE로 분석해보면 Bias와 Variance의 식으로 정리됩니다. Learning Error = Bias + Variance Bias : 학습된 분류기와 실제 값 사이의 제곱 에러, 정확도와 비슷한 개념 Variance : 학습된 분류기들이 각기 다른 학습셋에 성능의 변화정도가 급하게 변하는지 안정적으로 변하는지를 나타내는 척도 ○ High Variance & Low Bias 모델이 높은 variance와 낮은 bias를 가질 때, 일부는 정확하게 매핑되지만 많은 데이터가 정확하게 예측하지 못합니다. 모델을 너무 tight하게 학습하여 데이터가 조금만 변..
2020.01.02 -
● 머신러닝에서 앙상블(ensemble)이란?앙상블 기법은 동일한 학습 알고리즘을 사용해 여러 모델을 학습하는 기법입니다.괜찮은 Single Learner(단일 학습기)보다 Weak Learner를 결합하면 더 좋은 성능을 얻을 수 있다는 아이디에서 출발한 방법이기도 합니다. 즉, 성능이 좋지 않은 모델을 모아 성능이 좋은 모델 하나를 만드는 것입니다.Weak Learner : Learner는 특정한 데이터를 이용해 인스턴스화 한 모델을 뜻하며, Weak Learner는 최종적인 결과물보다 상대적으로 정확하지 않은 결과를 보이는 learner를 말합니다. 예전에는 Kaggle(국제적인 머신러닝 문제풀이 사이트)에서 평타이상을 치는 모델로 랜덤포레스트를 사용하였는데 요즘에는 XGBoost를 많이 사용한다고..
[Keras] 튜토리얼10 - 앙상블(ensemble)● 머신러닝에서 앙상블(ensemble)이란?앙상블 기법은 동일한 학습 알고리즘을 사용해 여러 모델을 학습하는 기법입니다.괜찮은 Single Learner(단일 학습기)보다 Weak Learner를 결합하면 더 좋은 성능을 얻을 수 있다는 아이디에서 출발한 방법이기도 합니다. 즉, 성능이 좋지 않은 모델을 모아 성능이 좋은 모델 하나를 만드는 것입니다.Weak Learner : Learner는 특정한 데이터를 이용해 인스턴스화 한 모델을 뜻하며, Weak Learner는 최종적인 결과물보다 상대적으로 정확하지 않은 결과를 보이는 learner를 말합니다. 예전에는 Kaggle(국제적인 머신러닝 문제풀이 사이트)에서 평타이상을 치는 모델로 랜덤포레스트를 사용하였는데 요즘에는 XGBoost를 많이 사용한다고..
2019.12.31 -
● 신경망(Neural Network)의 발전단층 신경망 : 입력층 + 출력층다층 신경망 : 입력층 + 히든층 + 출력층심층 신경망 : 입력층 + 2개이상의 히든층 + 출력층 ● MLP(MultiLayer Perceptron) 다층 퍼셉트론 이란? 퍼셉트론으로 이루어진 층(layer) 여러 개를 순차적으로 붙여놓은 형태입니다. 입력에 가까운 층을 아래에 있다고 하고, 출력에 가까운 층을 위에 있다고 합니다. 신호는 아래에서 위로 계속 움직이며, MLP에서는 인접한 층의 퍼셉트론간의 연결은 있어도 같은 층의 퍼셉트론끼리의 연결은 없습니다. 또, 한번 지나간 층으로 다시 연결되는 피드백(feedback)도 없습니다. 각 층은 그래프 구조에서 하나의 노드처럼 동작합니다. 즉, 입력이 들어오면 연산을 한 ..
[Keras] 튜토리얼9 - MLP(MultiLayer Perceptron) 구현하기● 신경망(Neural Network)의 발전단층 신경망 : 입력층 + 출력층다층 신경망 : 입력층 + 히든층 + 출력층심층 신경망 : 입력층 + 2개이상의 히든층 + 출력층 ● MLP(MultiLayer Perceptron) 다층 퍼셉트론 이란? 퍼셉트론으로 이루어진 층(layer) 여러 개를 순차적으로 붙여놓은 형태입니다. 입력에 가까운 층을 아래에 있다고 하고, 출력에 가까운 층을 위에 있다고 합니다. 신호는 아래에서 위로 계속 움직이며, MLP에서는 인접한 층의 퍼셉트론간의 연결은 있어도 같은 층의 퍼셉트론끼리의 연결은 없습니다. 또, 한번 지나간 층으로 다시 연결되는 피드백(feedback)도 없습니다. 각 층은 그래프 구조에서 하나의 노드처럼 동작합니다. 즉, 입력이 들어오면 연산을 한 ..
2019.12.30 -
● 회귀(Regression)란? 먼저 '회귀'라는 말은 '한바퀴 돌아 제자리로 돌아가다'라는 뜻입니다. 먼저 회귀(Regression)이라는 용어 때문에 회귀모델을 이해하는데 약간의 혼란이 있을 수 있습니다. 사실 회귀모델에서 회귀의 정확한 의미는 '평균으로의 회귀'라는 뜻이라고 봐도 무방합니다. 데이터의 실측치와 모델의 실측치 사이의 차이, 즉 회귀식에서 오차항에 대한 관측치(잔차)가 평균으로 회귀하는 것이 바로 '회귀' 입니다. 정확한 모델에서는 잔차가 평균 0으로 회귀하게 됩니다. 어째서 '회귀'라고 불리는가? - 회귀 모델과 회귀 분석이란? 회귀모델이란, 어떤 연속성 데이터 x, y의 원인이라고 추정되는 관계를 추정하기 위해 만든 모델을 말합니다. ( y = f(x) ) 그렇게 추정한 관계를 입..
[딥러닝] 선형회귀와 로지스틱회귀● 회귀(Regression)란? 먼저 '회귀'라는 말은 '한바퀴 돌아 제자리로 돌아가다'라는 뜻입니다. 먼저 회귀(Regression)이라는 용어 때문에 회귀모델을 이해하는데 약간의 혼란이 있을 수 있습니다. 사실 회귀모델에서 회귀의 정확한 의미는 '평균으로의 회귀'라는 뜻이라고 봐도 무방합니다. 데이터의 실측치와 모델의 실측치 사이의 차이, 즉 회귀식에서 오차항에 대한 관측치(잔차)가 평균으로 회귀하는 것이 바로 '회귀' 입니다. 정확한 모델에서는 잔차가 평균 0으로 회귀하게 됩니다. 어째서 '회귀'라고 불리는가? - 회귀 모델과 회귀 분석이란? 회귀모델이란, 어떤 연속성 데이터 x, y의 원인이라고 추정되는 관계를 추정하기 위해 만든 모델을 말합니다. ( y = f(x) ) 그렇게 추정한 관계를 입..
2019.12.22 -
지금까지 예제에 사용했던 모델을 설계하는 방식은 sequential API를 사용한 것 입니다.하지만 sequential API는 여러층을 공유하거나, 다양한 종류의 입출력을 사용하는 등의 복잡한 모델을 만드는 일을 하기에는 한계가 있습니다. 이번 포스팅에서는 복잡한 모델을 생성할 수 있는 방식은 functioanl API(함수형 API)에 대해서 알아봅시다. ● Sequential API1234from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Densemodel=Sequential()model.add(Dense(3, input_dim=4, activation='softmax'))cs sequential a..
[Keras] 튜토리얼8 - 함수형으로 모델 구축(functional API)지금까지 예제에 사용했던 모델을 설계하는 방식은 sequential API를 사용한 것 입니다.하지만 sequential API는 여러층을 공유하거나, 다양한 종류의 입출력을 사용하는 등의 복잡한 모델을 만드는 일을 하기에는 한계가 있습니다. 이번 포스팅에서는 복잡한 모델을 생성할 수 있는 방식은 functioanl API(함수형 API)에 대해서 알아봅시다. ● Sequential API1234from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Densemodel=Sequential()model.add(Dense(3, input_dim=4, activation='softmax'))cs sequential a..
2019.12.21