I. 튜닝 프로세스 신경망을 학습시킬 때 여러 가지 하이퍼파라미터가 관여한다. 여기서 하이퍼파라미터는 파라미터와 명확하게 다른 개념이다. 파라미터는 모델 내부에서 결정되는 변수를 뜻하고 하이퍼파라미터는 모델링을 할 때 사용자가 직접 세팅해주는 값을 뜻한다. 딥러닝에는 다양한 하이퍼파라미터가 존재한다. 상황에 따라 다를 수도 있지만 보통 우선 조정하는 순서로 나열해보면 다음과 같다. - 학습률 - 모멘텀(Momentum) - 학습률 (α) - 모멘텀(Momentum) 알고리즘의 β - 은닉 유닛의 수 - 미니배치 크기 - 은닉층의 갯수 - 학습률 감쇠(learning rate decay) 정도 - 아담(Adam) 알고리즘의 β1, β2, ϵ 이렇게 다양한 하이퍼파라미터가 존재하는데 심층 신경망을 학습 시킬..
앤드류응
활성화 함수 활성화 함수는 인공신경망에서 입력 값에 대해서 가중치를 곱한 뒤 적용하는 함수를 의미한다. 예를 들어, - 계단 함수(Step Function) - 시그모이드(Sigmoid) - tanh 함수(Hyperbolic tangent function) - ReLU(Rectified Linear Unit) - Leakly ReLU - PReLU - ELU(Exponential Linear Unit) - Maxout 함수 - 항등 함수(Identity Function) - 소프트맥스 함수(Softmax Function) 등이 있다. 신경망은 입력층, 은닉층, 출력층으로 구성되는데, 선형함수를 사용할 경우에는 은닉층을 사용할 수 X. 즉, 선형함수를 여러층으로 구성하더라도 결국은 선형함수를 그저 여러번 ..
벡터화 일반적으로 평소에 코딩할 때 for문을 정말 자주 사용하는데, 딥러닝의 구현에 있어서는 for문의 사용은 코드 실행을 느려지게 만들 수 있다. numpy 내장함수를 사용하게 되면 for문을 사용할 때보다 훨씬 빨라질 수 있다. 그렇기 때문에 일단 for문을 쓰고 싶다면 그 공식을 쓰지 않고 numpy 내장 함수를 사용할 수 있는지 먼저 확인을 해야함 만약 코드를 벡터화하지 않는다면, 위와 같이 Z = wx + b를 구현하기 위하여 z = 0으로 초기화시킨 후 for문을 반복적으로 계산해야한다. 반면, 코드를 벡터화했을 경우에는 파이썬의 라이브러리 함수를 통해 위와 같이 간단하게 한 줄로 표현가능하다. 위 코드는 로지스틱 회귀의 도함수를 구하는 코드이다. 위 코드에서는 for문이 2번 나타난..
- numpy.array() : 배열 생성 - numpy.ndim() : 차원 출력 - numpy.zeros() : 0으로 채워진 배열 생성 numpy.ones() : 1로 채워진 배열 생성 - numpy.sqrt() : 배열 원소들 제곱근 구하기 numpy.square(): 배열 원소들 제곱하기 - numpy.init64() : 데이터 타입 변환시키기 (cf. numpy.float64()) - numpy.transpose() : 배열 전치 - numpy.mean() : 배열 원소의 평균 numpy.var() : 배열원소의 분산 numpy.std() : 배열 원소의 표준편차 - numpy.around( ): 배열원소의 반올림 numpy.ceil() : 올림 numpy.floor(): 내림 - numpy...