Deep learning/이론(hands on machine learning) 14

4. 케라스로 다층 퍼셉트론 구현(1) - 시퀀셜 API 분류

먼저 데이터셋을 적재한다. fashion_mnist=keras.datasets.fashion_mnist (X_train_full,y_train_full),(X_test,y_test) = fashion_mnist.load_data() X_train_full.shape #(60000,28,28) X_train_full.dtype # uint8 이 데이터셋은 이미 훈련 세트와 테스트 세트로 나누어져 있다. 하지만 검증 세트는 없으므로 만들어야 한다. 또한 경사 하강법으로 신경망을 훈련하기 때문에 입력 특성의 스케일을 조정해야 한다. 간편하게 픽셀 강도를 255.0으로 나누어 0~1 사이 범위로 조정하겠다. X_valid,X_train=X_train_full[:5000]/255.0,X_train_full[500..

3. 회귀, 분류를 위한 다층 퍼셉트론(MLP-Multi Layer Perceptron)

다층 퍼셉트론은 회귀 작업에 사용할 수 있다. 값 하나를 예측하는 데 출력 뉴런이 하나만 필요하다. 이 뉴런의 출력이 예측된 값이다. 다변량 회귀(multivariate regression)에서는 (즉, 동시에 여러 값을 예측하는 경우) 출력 차원마다 출력 뉴런이 하나씩 필요하다. 일반적으로 회귀용 다층 퍼셉트론을 만들 때 출력 뉴런에 활성화 함수를 사용하지 않고 어떤 범위의 값도 출력되도록 한다. 하지만 출력이 항상 양수여야 한다면 출력층에 ReLU 활성화 함수를 사용할 수 있다. 또는 softplus 활성화 함수를 사용할 수 있다. 마지막으로 어떤 범위 안의 값을 예측 하고 싶다면 로지스틱 함수나 하이퍼볼릭 탄젠트 함수를 사용하고 레이블의 스케일을 적절한 범위로 조정할 수 있다. 로지스틱 함수는 0에..

2. 다층 퍼셉트론과 역전파

다층 퍼셉트론은 입력층(input layer) 하나와 은닉층(hidden layer) 이라 불리는 하나 이상의 TLU층과 마지막 출력층(output layer)로 구성된다. 입력층과 가까운 층을 보통 하위 층이라 부르고 출력에 가까운 층을 상위 층(upper layer)라고 부른다. 출력층을 제외하고 모든 층은 편향 뉴런을 포함하며 다음 층과 완전히 연결되어 있다. 은닉층을 여러 개 쌓아 올린 인공 신경망을 심층 신경망(deep neural network(DNN)) 이라고 한다. 딥러닝은 심층 신경망을 연구하는 분야이며 조금 더 일반적으로는 연산이 연속하게 길게 연결된 모델을 연구한다. 역전파 알고리즘은 효율적인 기법으로 그레이디언트를 자동으로 계산하는 경사 하강법이다. 네트워크를 두 번 통과하는 것만으..

1. 케라스를 사용한 인공 신경망 소개 - 퍼셉트론

인공 뉴런 모델은 하나 이상의 이진(on/off) 입력과 이진 출력 하나를 가진다. 인공 뉴런은 단순히 입력이 일정 개수만큼 활성화되었을 때 출력을 내보낸다. 이 네트워크가 어떤 일을 하는지 알아보자. 퍼셉트론(perception)은 가장 간단한 인공 신경망 구조 중 하나로 퍼셉트론은 TLU(threshold logic unit) 또는 이따금 LTU(linear threshold unit)라고 불리는 조금 다른 형태의 인공 뉴런을 기반으로 한다. 입력과 출력이 (이진 on/off 값이 아닌) 어떤 숫자이고, 각각의 입력 연결은 가중치와 연관되어 있다. TLU는 입력의 가중치 합을 계산 한 뒤 계산된 합에 계단 함수(step function)을 적용하여 결과를 출력한다. 즉, h(x)=step(z), 여기..