'AI/Hands-On Machine Learning 2판' 카테고리의 글 목록
어제보다 나은 사람이 되기

걱정보단 실행을, 그러나 계획적으로

Box World 자세히보기
반응형

AI/Hands-On Machine Learning 2판 20

[머신러닝 순한맛] LSTM의 모든 것

아무리 어려워도 한번 시작한 일은 끝까지 해라 - 안드레아 정 (에어본 회장) - 저번 포스팅에서 우리는 RNN을 이용하여 주어진 Time-Series 데이터를 이용하여 미래를 예측하는 forecasting에 대해 공부해보았습니다. 하지만 이전에 우리가 다뤘던 데이터들의 길이는 상대적으로 짧은 축에 속했습니다. 몇달이 아닌 몇 년 치의 데이터에도 RNN은 좋은 성능을 보일까요? 긴 시퀀스(상대적으로 많은 타임 스텝을 가지는 Time-Series Data)로 훈련하려면 많은 타임 스텝에 걸쳐 실행해야 하므로 RNN은 그만큼 매우 깊은 네트워크가 됩니다. 보통 이렇게 깊어진 RNN은 다음과 같은 문제가 발생할 수 있습니다. 깊어진만큼 Gradient Vanishing 문제나 Exploding 문제가 발생할 ..

[ 머신러닝 순한 맛 ] 시계열 데이터의 모든 것, RNN 정복하기!

사는 데 더 나은 방법을 찾아라 - 엘빈 토플러 - 코로나로 인해 가장 크게 떠오른 분야가 무엇이냐고 한다면, 저는 주식만한게 없다고 생각합니다. 우린 결국 돈을 벌고 싶고, 미래를 예측하여 주식 가격을 예측할 수 있다면 더할 나위가 없겠죠^^ 이미 월가를 비롯해 주식시장의 최전방에 위치해있는 기업들은 실제로 다양한 기술을 이용하여 주식 가격의 미래를 예측하여 이를 실제로 수익과 연결시킵니다. 이번 포스팅에서는 순환 신경망 RNN(Recurrent Neural Network)에 대해 알아보겠습니다. 이 RNN은 우리가 그동안 봐왔던 대부분의 네트워크처럼 고정된 길이의 Input이 아닌 임의의 길이를 가진 시퀀스를 다룰 수 있습니다. 시퀀스의 예로는 문장, 문서, 오디오 샘플 등 가변적인 길이가 가진 것들..

[ 머신러닝 순한맛 ] Regularization in 딥러닝의 모든 것

"나는 네 개의 파라미터가 있으면 코끼리 모양을 학습시킬 수 있고, 다섯 개가 있으면 코를 꿈틀거리게 할 수 있다." - 존 폰 노이만 - Neural Network는 수만 개에서 수백만 개까지 파라미터를 가집니다. 그만큼 크고 복잡한 데이터셋을 학습할 수 있을만큼 네트워크의 자유도가 높다는 것을 의미합니다. 그러나 이러한 자유도가 높을 수록 네트워크는 Training set에 과대적합(Overfitting)되기 쉬워집니다. 이번 포스팅에서는 Neural Network에서 Overfitting을 막기 위해 사용하는 다양한 규제(Regularization) 방법들에 대해 알아보겠습니다. 이번 포스팅은 다음 포스팅을 읽은 후 공부하시면 더욱 효과적입니다. [AI/Coursera ( Machine Learni..

[머신러닝 순한맛] 학습률 스케줄링의 모든 것

"경쟁자의 성공을 탐하지 마라" - 제럴딘 레이본느 (옥시전 미디어 회장 겸 ceo) - 저번 포스팅에서 우리는 가중치 파라미터의 최적화를 속도, 그리고 리소스 효율성의 측면에서 바라보았습니다. 이번 포스팅에서는 최적화의 속도에 관여하는 또 하나의 하이퍼파라미터인 학습률(Learning Rate) 스케줄링을 통해 파라미터 최적화의 성능을 방법에 대해서 알아보겠습니다. 학습률 스케줄링 가중치를 최적화하는데 있어서 '좋은 학습률'을 찾는 것은 중요한데 이유는 다음과 같습니다. 우리가 가장 Loss가 적은 Local minimum까지 걸어간다고 할때, 학습률은 걸음의 보폭이라고 할 수 있습니다. 학습률이 너무 크면 Local minimum을 지나치거나 수렴하기 어렵습니다. 반대로 너무 작아도 Local min..

[ 머신러닝 순한 맛] 전이학습은 어떻게 이뤄질까? with Code

큰 야망을 품었을 때 커다란 결실을 얻을 수 있다. - 힐러리 클린턴미국 상원의원 - 이 글을 읽는 여러분의 AI 공부를 어렵게 하는 것은 무엇인가요? 어려운 개념이나 수식도 한몫하겠지만, 저는 높은 연산량을 감당하기 위해, 값비싼 GPU가 필요하다는 것입니다. 이런 맥락에서 대부분의 AI를 초기에 공부하는 우리들이 아주 큰 규모의 DNN을 처음부터 훈련시킨다는 건 매우 어려운 일입니다. 이럴 경우 생각해볼 수 있는 방법이 비슷한 유형의 문제를 처리한 신경망이 있는지 찾아보고 이를 이용하는 전이 학습입니다. 우리는 이를 통해 훈련 속도도 크게 높일 수 있으며 필요한 훈련 데이터도 크게 줄어듭니다. 이번 포스팅에서는 실무에서도 많이 쓰이는 전이학습에 대해 공부해보겠습니다. 사전 훈련된 층 재사용하기 여기 ..

[머신러닝 순한맛] 그레디언트 소실(Vanishing) / 폭주(Exploding)이란?

잘못된 전략이라도 제대로 실행만 하면 반드시 성공할 수 있다. 반대로 뛰어난 전략이라도 제대로 실행하지 못하면 반드시 실패한다. - 선 마이크로시스템즈 CEO, 스콧 맥닐리 - Deep Neural Network, 줄여서 DNN이라고 부르는 심층 신경망은 그 구조에 따라 수백 개에서 수 만개에 이르는 노드들이 엮어있는 구조를 지닙니다. 구조가 복잡한 것만큼 이것을 훈련하는 것 또한 쉽지 않습니다. 예를 들어 신경망의 아래쪽으로 갈 수록 그레디언트가 작아지거나 커지는 그레디언트 소실/폭주(Gradient Vanishing/Exploding) 문제가 발생할 수 있습니다. 훈련을 위한 데이터가 충분하지 않거나 데이터에 레이블을 붙이는데 많은 Cost가 들어갈 수 있습니다. 과대적합(Overfitting)의 위..

[ 핸즈 온 머신러닝 2 ] 비지도 학습의 모든 것 (K-Means)

약해지지 말자. - 래리 페이지 (구글 공동창립자) - 시작하며 이전 포스팅에서는 대부분 레이블($y$)이 존재하는 데이터에 대해 다뤄봤습니다. 하지만 우리가 사용하는 대부분의 데이터는 레이블이 없습니다. 그렇다면 레이블이 없다면 붙이면 되지 않을까요? 예를 들어 제품 결함을 감지하는 시스템을 만들어야 한다고 가정해보겠습니다. 시스템을 학습시키기 위해 수천장의 제품 사진 데이터를 마련하는 건 쉬울지 몰라도 이것들에 각각 결함과 정상을 판단하여 레이블링을 하는 것은 높은 cost를 요합니다. 물론 최근에는 데이터에 대한 중요성이 대두되면서 정부 차원에서 이러한 데이터 생성 및 가공에 힘을 쓰고 있지만, 이번 포스팅에선 사람의 도움없이 알고리즘이 레이블이 없는 데이터를 바로 사용하는 비지도 학습에 대해 살펴..

[ 핸즈 온 머신러닝 2 ] 차원 축소란? (Dimension Reduction)

사람은 어려움 속에서 성장한다 - 제임스 캐시 페니 (J.C 페니 백화점 창립자) - 시작하며 특성(feature)은 얼핏 보면 데이터의 다양한 측면을 보여주기 때문에 많을 수록 좋은 것 같습니다. 실제로 우리가 마주하는 머신러닝 문제에서는 Training set의 feature가 수백만 개까지 가지고 있는 경우가 있습니다. 그러나 이런 많은 특성은 훈련을 느리게 하기도 하고, 때론 좋은 솔루션을 찾는데 방해하기도 합니다. 우리는 이를 차원의 저주(curse of dimensionality)라고 합니다. 8.1 차원의 저주 우리가 살고 있는 세계는 3차원으로, 4차원 이상으로만 가도 직관적으로 상상하기 어렵습니다. 게다가 고차원 공간에선 우리의 상식과 다르게 작동하는 것들이 많습니다. 예를 들어 1*1 ..

[ 핸즈 온 머신러닝 2 ] 앙상블 학습과 랜덤 포레스트란?

매일 아침 삶의 목표를 생각하며 일어나라 - 아이제이아 토마스 (NBA 아이닉스 사장 겸 감독) - 시작하며 굉장히 복잡한 질문에 대해서 수천명의 사람들에게 대답을 모으는 것과 전문가에게 답을 듣는 것, 둘 중 어떤 것이 더 정확할까요? 대부분 전자가 더 정확하며 우리는 이를 대중의 지혜라고 합니다. 마찬가지로 머신러닝에서도 적당한 성능의 모델 여러개들로부터 예측을 수집하는 것이 가장 좋은 하나의 모델의 예측보다 더 좋은 결과를 불러옵니다. 우리는 이러한 학습 방법을 앙상블 학습(Ensemble Learning)이라고 합니다. 이번 포스팅은 Decision Tree의 이해가 바탕이 되어야 합니다. 다음 포스팅을 참고해주세요! [AI/Hands-On Machine Learning 2판] - [ 핸즈온 머신..

[ 핸즈온 머신러닝 2 ] Decision Tree란?

성공하려면 이미 했던 일을 제대로 활용하라 - 블레이크 로스 (파이어폭스 공동 개발자) - 시작하며 저번 포스팅에서는 SVM에 대해 다뤄보았습니다. 이번 포스팅에서 다룰 Decision Tree은 SVM처럼 Classification, Regression 등 폭넓게 사용이 가능하며, 복잡한 데이터셋도 학습할 수 있는 강력한 알고리즘입니다. 6.1 Decision Tree 학습과 시각화 우선 Decision Tree를 이해하기 위해 모델 하나를 생성한 후 어떻게 예측하는지 살펴보겠습니다. 데이터는 Iris(붓꽃의 종류를 클래스화한 데이터)를 사용하였습니다. from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifi..

반응형