혼자공부하는 머신러닝 딥러닝 6주차 후기 및 미션 완료

 

@혼자공부하는 머신러닝 딥러닝

혼자공부하는 머신러닝 딥러닝 6주차 후기 및 미션 완료



@혼자공부하는 머신러닝 딥러닝



총 6주간의 혼자 공부하는 머신러닝 딥러닝을 공부하면서, 정말 쉽지 않고, 이해도 잘 안되는 부분이 많았는데, 그래도 끝가지 하나하나 교재를 보고 실습해 가면서 저자분의 유튜브 동영상 강의를 보면서 7장까지 학습은 할였습니다. 스터디는 끝났으나 이제 남은 2장의 챕터는 스스로 독학을 해서 끝까지 학습을 하려고 합니다.


다들 마지막까지 꼭 완주하시기를 응원합니다.




  • 챕터7 인공신경망


인공신경망은 뇌의 신경세포인 뉴런의 동작 방식을 모방하여 만들어진 인공지능 모델입니다. 입력층, 은닉층, 출력층으로 구성되어 있으며, 일정한 규칙에 따라 데이터를 처리하고 결과를 내놓습니다. 책에서는 패션 MNIST 데이터 셋을 가지고 실습을 하였으며, 아래에 링크 주소를 참고하면 텐서플로 사이트에 사용한 데이터셋에 대해서 자세히 나와 있습니다.


https://www.tensorflow.org/api_docs/python/tf/keras/datasets/fashion_mnist/load_data


심층신경망은 인공신경망의 한 종류로, 은닉층이 여러 개인 모델을 말합니다. 이러한 다양한 층을 통해 복잡한 패턴이나 특성을 추출할 수 있어, 다양한 분야에서 높은 성능을 보이고 있습니다. 교재에서는 패션 MNIST 데이터셋에 케라스를 사용하여 만들어 보았습니다.




  • 기본 미션 : Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기


1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?

① 1,000개
② 1,001개
➂ 1,010개 <--- 정답
④ 1,100개

* 100개의 입력 특성과 10개의 뉴런이 있으므로, 가중치 개수는 100 X 10 = 1,000개 이고, 
각 뉴런에 대한 편향이 하나씩 필요하므로 뉴런 개수와 동일한 10개의를 더하면 1,010개가 된다.


2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?

① 'binary'
② 'sigmoid' <--- 정답
➂ 'softmax'
④ 'relu'

* (354페이지) 클래스가 2개인 경우 시그모이드 함수(sigmoid)

dense = keras.layers.Dense(10, activation='sigmoid', input_shape=(784, ))


3. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?

① configure()
② fit()
➂ set()
④ compile() <--- 정답


* (355페이지) 케라스(Keras) 에서 모델의 손실함수(loss)와 측정지표(metrics) 등을 지정하는 메서드는 compile() 메서드 입니다.

model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy')


4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?

① 'sparse_categorical_crossentropy' <--- 정답
② 'categorical_crossentropy'
➂ 'binary_crossentropy'
④ 'mean_square_error'


* (358페이지) 정수로된 타깃값을 사용해 크로스 엔트로피 손실을 계산하는 것이 바로 sparse_categorical_crossentropy 입니다. 정수값 하나만 사용한다는 뜻에서 sparse 라는 이름이 붙인것 같다.

model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy')



  • 선택 미션 : Ch07(07-2) 확인 문제 풀고, 풀이 과정 정리하기


1. 확인 중 모델의 add() 메서드 사용법이 올바른 것은 어떤 것인가요?

① model.add(keras.layers.Dense)
② model.add(keras.layers.Dense(10, activation='relu')) <--- 정답
➂ model.add(keras.layers.Dense, 10, activation='relu'))
④ model.add(keras.layers.Dense) (10, activation='relu')

* (375페이지) add() 메서드를 호출하여 층을 추가하는 방법은 아래와 같다.

model.add(keras.layers.Dense(10, activation='softmax'))


2. 크기가 300 X 300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?

① Plate
② Flattern <--- 정답
➂ Normalize
④ Dense

* (377페이지) Flatten 층은 다차원 입력을 1차원을 변환한다. 넘파이 배열의 reshape() 메서드와 비슷한 기능이다.


3. 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?

① linear
② sigmoid
➂ relu <--- 정답
④ tanh


* (377페이지) 이미지 분류를 위한 심층 심경망에서 널리 사용되는 케라스 활성화 함수는 ReLU 입니다.



4. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?

① SGD <--- 정답

② Adagrad

➂ RMSprop

④ Adam


* 확률적 경사 하강법(SGD)는 기본적인 경사 하강법 알고리즘으로, 한 번의 업데이트에 하나의 훈련 샘플을 사용합니다. 각 반복에서 모델 파라미터는 학습률과 기울기의 곱으로 업데이트 합니다.




#혼공학습단 #혼공단 #혼공머신 #머신러닝 #딥러닝 #python #인공신경망 #MNIST #텐서플로 #TensorFlow


댓글 쓰기

0 댓글