DrawingProcess
드프 DrawingProcess
DrawingProcess
전체 방문자
오늘
어제
«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • 분류 전체보기 (964)
    • Profile & Branding (22)
      • Career (15)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (97)
      • Book (66)
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • 인생을 살면서 (64)
      • 나의 취미들 (7)
      • 나의 생각들 (42)
      • 여행을 떠나자~ (10)
      • 분기별 회고 (5)

개발자 명언

“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”

- Jef Raskin

맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
DrawingProcess

드프 DrawingProcess

[Study] 혼공학습단 10기: 혼자 공부하는 머신러닝+딥러닝(박해선) - Chapter 07 다양한 분류 알고리즘(6주차)
Project Process/Study Report

[Study] 혼공학습단 10기: 혼자 공부하는 머신러닝+딥러닝(박해선) - Chapter 07 다양한 분류 알고리즘(6주차)

2023. 8. 20. 14:00
반응형

스터디

스터디 범위

Chapter 07 딥러닝을 시작합니다 ▶️패션 럭키백을 판매합니다!

  • 07-1 인공 신경망 ▶️ 텐서플로로 간단한 인공 신경망 모델 만들기
  • 07-2 심층 신경망 ▶️인공 신경망에 층을 추가하여 심층 신경망 만들어 보기
  • 07-3 신경망 모델 훈련 ▶️인경 신경망 모델 훈련의 모범 사례 학습하기

스터디 내용

07-1 인공 신경망

인공 신경망: 생물학적 뉴런에서 영감을 받아 만든 머신러닝 알고리즘으로, 신경망은 기존의 머신러닝 알고리즘으로 다루기 어려웠던 이미지, 음성, 텍스트 분야에서 뛰어난 성능을 발휘하면서 크게 주목받고 있습니다. 인공 신경망 알고리즘을 종종 딥러닝이라고도 부릅니다.

텐서플로: 구글이 만든 딥러닝 라이브러리, CPU와 GPU를 사용해 인공 신경망 모델을 효율적으로 훈련하며 모델 구축과 서비스에 필요한 다양한 도구를 제공합니다. 텐서플로 2.0부터는 신경망 모델을 빠르게 구성할 수 있는 케라스를 핵심 API로 채택 하였습니다. 

  • Dense(): 신경망에서 가장 기본 층인 밀집층을 만드는 클래스입니다. 이 층에 첫 번째 매개변수에는 뉴런의 개수를 지정하며, activation 매개변수에는 사용할 활성화 함수( ‘sigmoid’, ‘softmax’)를 지정합니다. 케라스의 Sequential 클래스에 맨 처음 추가되는 층에는 input_shape 매개변수로 입력의 크기를 지정해야 합니다.
  • Sequential(): 케라스에서 신경망 모델을 만드는 클래스입니다. 이 클래스의 객체를 생성할 때 신경망 모델에 추가할 층을 지정할 수 있습니다. 추가할 층이 1 개 이상일 경우 파이썬 리스트로 전달합니다.
  • compile(): 모델 객체를 만든 후 훈련하기 전에 사용할 손실 함수와 측정 지표 등을 지정하 는 메서드입니다. loss 매개변수에 손실 함수를 지정합니다. 이진 분류일 경우 ‘binary_crossentropy’, 다중 분류일 경우 ‘categorical_crossentropy’를 지정합니다. 클래스 레이블이 정수일 경우 ‘sparse_categorical_crossentropy’로 지정합니다. 회귀 모델일 경우 ‘mean_square_ error’ 등으로 지정할 수 있습니다. metrics 매개변수에 훈련 과정에서 측정하고 싶은 지표를 지정할 수 있습니다. 측정 지표가 1 개 이상일 경우 리스트로 전달합니다.
  • fit(): 모델을 훈련하는 메서드입니다. 첫 번째와 두 번째 매개변수에 입력과 타깃 데이터를 전달합니다. epochs 매개변수에 전체 데이터에 대해 반복할 에포크 횟수를 지정합니다.
  • evaluate(): 모델 성능을 평가하는 메서드입니다. 첫 번째와 두 번째 매개변수에 입력과 타깃 데이터를 전달합니다. compile() 메서드에서 loss 매개변수에 지정한 손실 함수의 값과 metrics 매개변수에서 지정한 측정 지표를 출력합니다.
  • add(): 케라스 모델 에 층 을 추가하는 메서드. 케 라스 모델 의 add() 메서드는 keras.layers 패키지 아래에 있는 층의 객체 를 입력 받아 신경 망 모델 에 추가 합니다 . add ( ) 메서드 를 호출 하여 전달한 순서 대로 층 이 차례 대로 늘어 납니다.
  • summary(): 케라스 모델의 정보를 출력하는 메서드. 모델에 추가된 층의 종류와 순서, 모델 파라미터 개수를 출력 합니다. 층을 만들 때 name 매개 변수로 이름을 지정하면 summary() 메서드 출력에서 구분하기 쉽습니다.

밀집층(Dence Layer): 밀집층에서는 뉴런들이 모두 연결되어 있기 때문에 완전 연결 층(Fully Connected Layer)이라고도 부릅니다. 특별히 출력층에 밀집층을 사용할 때는 분류하려는 클래스와 동일한 개수의 뉴런을 사용합니다.

원-핫 인코딩: 정숫값을 배열에서 해당 정수 위치의 원소만 1이고 나머지는 모두 0으로 변환 합니다. 이런 변환이 필요한 이유는 다중 분류에서 출력층에서 만든 확률과 크로스 엔트로피 손실을 계산하기 위해서 입니다. 텐서플로에서는 ‘sparse_categorical_entropy’ 손실을 지정하면 이런 변환을 수행할 필요가 없습니다.

07-2 심층 신경망

심층 신경망: 2개 이상의 층 을 포함한 신경망 입니다 . 종종 다층 인공 신경망 , 심층 신경망 , 딥 러닝 을 같은 의미 로 사용 합니다 .

Relu 함수: 이미지 분류 모델 의 은닉층 에 많이 사용 하는 활성화 함수 입니다 . 시그모이드함수는 층이 많을수록 활성화 함수 의 양쪽 끝에서 변화가 작기 때문에 학습이 어려워집니다 . 렐루 함수는 이런 문제가 없으며 계산도 간단 합니다 .

옵티마이저(Optimizer): 신경망 의 가중치 와 절편을 학습 하기 위한 알고리즘 또는 방법 을 말합니다 . 케라 스 에는 다양한 경사 하강 법 알고리즘 이 구현 되어 있습니다 . 대표 으로 SGD , 네스테로프 모멘텀 , RMSprop , Adam 등이 있습니다 .

  • SGD:
  • Adagrad: learning_rate 매개 변수로 학습률을 지정하며 기본값은 0.001입니다 . Adagrad 는  레이디 언트 제곱 을 누적 하여 학습률 을 나눕니다 . initial_accumulator_ value 매개 변수 에서 누적 초 깃값 을 지정할 수 있으며 기본값 은 0.1 입니다.
  • RMSprop: RMSprop 옵티마이저 클래스. learning_rate 매개 변수 로 학습률 을 지정 하며 기본값 은 0.001 입니다 . Adagrad 처럼 그 레이디 언트 제곱 으로 학습률 을 나누지 만 최근 의 그 레이디 언트 를 사용 하기 위해 지수 감소 를 사용 합니다 . rho 매개 변수 에서 감소 비율 을 지정 하며 기본값 은 0.9 입니다
  • Adam: Adam 옵티마이저 클래스. learning_rate 매개 변수 로 학습률 을 지정 하며 기본값 은 0.001 입니다 . 모멘텀 최적화 에 있는 그레이디언트 의 지수 감소 평균을 조절 하기 위해 beta_1 매개 변수가 있 으며 기본값은 0.9 입니다 . RMSprop에 있는 그레이디언트 제곱의 지수 감소 평균을 조절 하기 위해 beta_2 매개 변수가 있으며 기본값은 0.999 입니다 . 

미션

기본 미션

Ch 07(07-1) 확인 문제 풀고, 풀이 과정 정리하기

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

A: 3번 1,010개, 입력특성을 포함하여 bias 값을 뉴런의 갯수에 곱한 값이 파라미터의 개수이기에 1,010개입니다.

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

A: 1번 'binary'. 이진분류모델의 경우 출력층 활성화 함수로 binary 를 지정해주어야 하며, 다중분류모델인 경우 softmax 활성화 함수를 지정해주어야 합니다.

Q3. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요? 1 configure() 2 fit() 3 set() 4 compile() 

A: 4번 compile(). compile 함수에서 손실함수와 측정 지표 등을 지정합니다.

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

A: 1번 ‘sparse_categorical_crossentropy’, 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때, 손실함수로 '‘sparse_categorical_crossentropy’'를 지정해주어야 합니다.

선택 미션

Ch 07(07-2) 확인 문제 풀고, 풀이 과정 정리하기

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

A: 2번. 모델 의 add ( ) 메서드 에는 층 의 객체 를 전달 해야 합니다 . ① 은 층 의 클래스 를 전달 하고 있고 , ③ 은 Dense 클래스 의 매개 변수 를 add ( ) 메서드 에 전달 합 니다 . ④ 는 add ( ) 메서드 에서 반환 하는 값 이 없기 때문에 함수 호출 오류 가 발생 합니다 .

Q2. 크기가 300 × 300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요? 1 Plate 2 Flatten 3 Normalize 4 Dense

A: 2번 Flatten. 배치 차원 을 제외한 입력 의 차원 을 일렬 로 펼치 려면 Flatten 클래스 를 사용 합니다 .

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

A: 3번 relu. 이미지 처리 작업 에 널리 사용 되는 렐루 활성화 함수입니다.

Q4. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요. 1 SGD 2 Adagrad 3 RMSprop 4 Adam

A: 1번 SGD. SGD 는 기본 경사 하강 법과 모멘텀 , 네 스테 로프 모멘텀 알고리즘 을 구현할 클래스 입니다 . 이런 알고리즘 들은 모두 일정한 학습률 을 사용 합니다 . 

참고

  • [Github] 예제 소스: https://github.com/rickiepark/hg-mldl
  • [Google Colab] 예제 소스: https://colab.research.google.com/github/rickiepark/hg-mldl 
  • Q&A: 박해선 저자님의 github: https://groups.google.com/g/ml-dl-book-qna?pli= 
  • 유튜브 강의: 👉전체 강의 목록: https://www.youtube.com/playlist?list=PLVsNizTWUw7HpqmdphX9hgyWl15nobgQX

혼공학습단, 혼공, ⁠혼공머신, 혼자 공부하는, 박해선, 혼자 공부하는 머신러닝+딥러닝

반응형
저작자표시 비영리 변경금지

'Project Process > Study Report' 카테고리의 다른 글

[영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(8월 4주차)  (0) 2023.08.31
[영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(8월 3주차)  (0) 2023.08.21
[영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(8월 2주차)  (0) 2023.08.15
[Study] 혼공학습단 10기: 혼자 공부하는 머신러닝+딥러닝(박해선) - Chapter 06 비지도 학습(5주차)  (0) 2023.08.11
[영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(8월 1주차)  (0) 2023.08.07
    'Project Process/Study Report' 카테고리의 다른 글
    • [영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(8월 4주차)
    • [영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(8월 3주차)
    • [영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(8월 2주차)
    • [Study] 혼공학습단 10기: 혼자 공부하는 머신러닝+딥러닝(박해선) - Chapter 06 비지도 학습(5주차)
    DrawingProcess
    DrawingProcess
    과정을 그리자!

    티스토리툴바