본문 바로가기

반응형

전체 글

Bias term의 필요성 원문 https://stackoverflow.com/questions/2480650/role-of-bias-in-neural-networks Q I'm aware of the Gradient Descent and the Back-propagation Theorem. What I don't get is: When is using a bias important and how do you use it? For example, when mapping the AND function, when I use 2 inputs and 1 output, it does not give the correct weights, however, when I use 3 inputs (1 of which is a bias), it gi.. 더보기
Optimization 방법론 Gradient Descent derivative-free optimization을 제외한 대부분의 기계학습 문제에서 optimization의 기본 전제는 Gradient descent이다. cost function의 기울기를 통해서, 최저점을 찾아 가는 것이다. 위의 그림처럼 표시된 위치에 있는 사람은 길을 따라 난 경사진 방향보다 오른쪽의 샛길로 가는 것이 더 빠른길이지만, 기울기 기반의 학습방식은 위와 같은 실질적인 길의 구조를 알 방법이 없고, 경사기반 하강을 한다. 따라서, 실제 더 빠른 갱신 방향이 있더라도, 현재 위치의 기울기를 기반으로 하기 때문에 다소 학습이 느릴 수 도 있다. *Hessian? gradient는 1차 미분이고, 2차 미분을 통해(hessian) newton 메서드를 기반.. 더보기
BOJ 1924 - 2007년 DP(memoization) 초기화 시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB49902205121770043.073%문제오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.입력첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.출력첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다. 전략1. 입력으로 들어온 월과 일에 대해서, 2007년 1월 1일 기준으로 상대적인 일수로 표현2. 일수를 기준으로, mod연산을 .. 더보기
Overfitting을 막는 Regularization Overfitting 이란? 학습데이터를 너무 맹신한 나머지, 예측을 올바르게 하지못하는 상황을 말함. Regression : 초록색 선이 실제 모델(underlying function)이고, 붉은선이 학습된 linear model이다. 사실은 위의 그림에선 실제 underlying fuction을 알아서 overfit이라고 쉽게 말할 수 있는 것이지만, 일반적인 경우에선 underlying function이 어떻게 생겼는지 알 수가 없다. 그렇다고 무턱대고 trainging error가 지나치게(?)낮다고 판단되는걸 overfit이라고 단언할 수도 없다. training error가 낮아져하는건 궁극적으로 좋은 방향이기 때문이다. 따라서, optimal한 overfit을 막을 수는 없다. 진짜 unde.. 더보기
Popular CNN Architecture (3) - ResNet ResNet 다양한 Task에서 효과적인 성능을 얻은 것을 미루어 보아 매우 범용적인 Net이다. googLeNet과 마찬가지로 parameter수를 줄이기 위해 bottle neck 아키텍쳐이용. residual connection을 쓴 것이 가장 큰 특징. 기존의 코드에 reidual connection을 추가함으로 구현하는 방식이다. Network가 deep하다고 좋은 성능을 보장하지못함. Q.기존에 생각된 가장 큰 원인 -> Vanishing / Exploding gradients --layer가 깊어질때, back prop으로 얻어지는 gradients들이 너무 작아지거나, 너무 커져서 발생하는 문제? => ResNet曰 : 좋은 initializing(weight)을 수행하고, batch no.. 더보기
Popular CNN Architecture (2) - GoogLeNet GoogLeNet inception Module이 핵심이다. Inception module의 장점(특징) AlexNet처럼 한 단계가 여러 레이어로 분화된 것이 특징인데, AlexNet과 달리, 각각의 layer의 filter가 상이함. 여러 갈림길로 분화되어 receptive field가 넓어(좀 더 다양한 filter를 취합해서 각단계를 접근하게되니 성능향상이 기대가 됨)져 좀 더 넓은 영역을 보고 input의 포괄적인 정보를 인지할 수 있다. ( * (b)가 실제로 사용된 모델이다.) (b)모델을 보면 알 수 있듯이 1x1의 conv를 사용하여, 한 단계를 두 단계로 나누어 channel 수를 획기적으로 줄여 준다. => dimension reduction Dimension Reduction에 관해.. 더보기
3. PyTorch VS TensorFlow -Torch vs PyTorch? (-)Lua - (+)Python (-)no Autograd -(+) Autograd PyTorch 단점 Torch에 비해 누적된 코드들이 적고 계속 변화하고 있음. PyTorch를 사용하면 됨. -PyTorch vs TensorFlow 가장 큰 차이는 static (computational)graph이냐 dynamic (computational)graph이냐에 있다. TF의 경우 static grpah를 구축한다. 매 iteration 단계에서 기존에 구축된 정적인 동일한 computational graph에 sess.run방식으로 동작(FP)시킨다. PyTorch의 경우 dynamic graph를 사용한다. 주된 차이는 매 iteration을 통해 수행되는 FP에서 .. 더보기
Popular CNN Architecture (1) - AlexNet, VGG 현 시대의 비전분야에 CNN아키텍쳐 사용에 시발점이된 AlexNet에서 15년도 ICLR 우승작인 ResNet에 이르기까지 대략적으로 큰 획을 그은 대표적인 아키텍쳐는 크게 4가지가 있었다. 이번 포스팅에서는 4종의 아키텍쳐중 AlexNet과 VGGNet에 대해 간략하게 알아볼 것이다. 각각의 아키텍쳐들은 시간이 지날수록 error rate이 감소하고, depth가 깊어지는 경향이 있다. 다시말해, 일반적으로 layer의 depth가 깊어질수록 성능이 좋아질 여지가 높아짐. (무조건적으로 성능이 좋아지는 것은 아님) AlexNet 1. 구조 기존 activation function(tanh, sigmoid 등)에 비해서 ReLU를 사용했을때, 더 빠른 속도로 수렴하는 효과적인 성능을 보임. (지금까지도 .. 더보기

반응형