Box World
어제보다 나은 사람이 되기

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

Box World 자세히보기
반응형

전체 글 71

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

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

[ 머신러닝 순한 맛 ] Adam, RMSProp, AdaGrad, 모멘텀 최적화, NAG의 모든 것

시련은 있어도, 실패란 없다 - 정주영 ( 현대 그룹 창업자 ) 지금까지 우리는 모델을 훈련할 때, 표준적인 경사하강법(Gradient Descent Algorithm)만 써왔습니다. 하지만 이러한 훈련과정의 속도를 높이는 방법에 대해 초기화 / activation function / Batch-Normalization / 전이 학습 4가지를 공부했습니다. 이번 포스팅에서 공부할 것은 훈련 속도를 높이기 위해 경사 하강법 대신에 쓸 수 잇는 고속 옵티마이저에 대해서 공부해보겠습니다. 다음 포스팅을 먼저 정독하시고 이번 포스팅을 보시면 더욱 쉽게 이해하실 수 있습니다 :) [AI/Hands-On Machine Learning 2판] - [머신러닝 순한맛] 그레디언트 소실(Vanishing) / 폭주(Exp..

카테고리 없음 2021.06.21

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

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

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

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

[ Flutter ] TextField 내 hinttext 가운데로 정렬하기

TextField 내 'textAlign: TextAlign.center'를 삽입해주면 쉽게 해결된다. Container( width: screenWidth*(300/360), child: TextField( controller: textfieldController_OpenChatLink, textInputAction: TextInputAction.done, // textAlign: TextAlign.center, decoration: InputDecoration( hintText: 'https://open.kakao.com/12345679', hintStyle: TextStyle( fontSize: screenWidth*(16/360), color: hexToColor('#D2D2D2'), fontWe..

개발/Flutter 2021.02.28

[ Flutter ] Google Map 현재 위치로 이동하는 버튼 만들기

이번 포스팅에서는 Flutter에서 Google map을 사용할 때 현재 자신의 위치로 camera position을 이동시키는 버튼을 구현해보겠습니다. 사실 다음과 같이 myLocationButtonEnabled: true로 주셔도 버튼이 생성되는데, 이 경우에 버튼이 오른쪽 상단에 생기는데 위치를 변경하지 못하는 문제점이 발생합니다. GoogleMap( mapType: _googleMapType, initialCameraPosition: _initialCameraPostion, onMapCreated: (GoogleMapController controller) async { // }, myLocationEnabled: true, ########################################..

개발/Flutter 2021.02.26

[ Flutter ] TextField의 prefixIcon 사이즈 내맘대로 조절하기

위와 같은 디자인을 구현하기 위해서는 TextField를 이용하는데, 돋보기를 사이즈에 맞게 넣으려는데 애를 먹었다. 다음과 같이 prefixIcon에 Svg나 Png를 넣어주면 TextField 앞에 아이콘이 자리잡게 된다. Container( height: screenHeight*0.05, width: screenWidth*0.836111, child: TextField( textAlign: TextAlign.left, controller: textfieldControllerSearchLocation, decoration: InputDecoration( hintText: '지역별 검색', hintStyle: TextStyle( fontSize: screenWidth*(12/360), color: he..

개발/Flutter 2021.02.25

[ 핸즈 온 머신러닝 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판] - [ 핸즈온 머신..

반응형