[Coursera/IBM course #2] Deep Learning Libraries & Keras Models

2025. 5. 17. 15:58·🥇 certification logbook
728x90
반응형


[IBM AI course #2] Introduction to Deep Learning & Neural Networks with Keras

 

딥러닝 모델을 구축하기 위해 다양한 라이브러리와 프레임워크가 존재하며,

해당 과정에서는 TensorFlow, PyTorch, Keras를 중점적으로 다루게 될 것이다.

 

주요 딥러닝 라이브러리

1. TensorFlow

가장 인기 있는 라이브러리

Google에서 개발, 2015년 공개

연구 및 실제 제품 환경 모두에서 사용

GitHub 상의 커밋, PR, 포크 수 등 커뮤니티 규모 매우 큼

학습 곡선이 가파름

2. PyTorch

Torch 프레임워크(Lua 기반)에서 파생

GPU 연산에 최적화

Python에 맞춰 재작성되어 사용성이 높고 빠름

2016년 출시, 특히 학계 및 커스텀 모델 최적화에 강점

Meta(Facebook)에서 지원

TensorFlow와 마찬가지로 학습 곡선이 가파름

3. Keras

고수준 API → 코드 간결하고 사용 쉬움

복잡한 네트워크도 몇 줄의 코드로 구현 가능

TensorFlow 위에서 동작하는 방식 (백엔드)

빠른 프로토타이핑에 적합

초보자에게 가장 적합한 라이브러리

선택 가이드

목적 추천 라이브러리
빠르고 간단한 딥러닝 모델 구현. 입문자 추천 Keras
세밀한 조정, 커스텀 네트워크, 학술 연구. 고급 사용자 및 연구자 추천 PyTorch
대규모 모델, 산업용 배포. 고급 사용자 및 연구자 추천 TensorFlow

 

 

Regression Models with Keras

데이터를 올바른 포맷으로 준비하는 방법

Keras를 이용해 간단한 회귀 신경망 모델을 구축하고 훈련하는 방법

 

[예제] 콘크리트 강도 예측

입력 데이터: 콘크리트 재료의 양 (8개 feature) → Cement, Blast Furnace Slag, Fly Ash, Water, Superplasticizer, Coarse Aggregate, Fine Aggregate, Age

출력 데이터: 콘크리트의 압축 강도 (MPa) → Strength

특징 컬럼은 predictors, 타겟 컬럼은 target으로 분리

 

모델 구조 (심층 신경망 예시)

입력: 8개의 feature

2개의 은닉층(hidden layer): 각 5개의 노드

출력층: 노드 1개 (압축 강도 예측)

각 레이어는 fully connected (dense) 구조

 

Keras 코드 구성 요소

모델 정의: Sequential 모델 사용 (선형 구조일 때 적합)

레이어 추가: Dense 레이어 사용 (첫 번째 레이어는 input_shape 지정 필수)

→ 활성화 함수: ReLU (은닉층에 권장)

출력층: 노드 수 1, 활성화 함수 생략 가능

    # create model
    model = Sequential()
    model.add(Input(shape=(n_cols,)))
    model.add(Dense(50, activation='relu'))
    model.add(Dense(50, activation='relu'))
    model.add(Dense(1))
    
    # compile model
    model.compile(optimizer='adam', loss='mean_squared_error')

 

학습 설정

손실 함수 (Loss): 평균 제곱 오차 (mean_squared_error)

최적화 알고리즘 (Optimizer): Adam

ㄴAdam 장점 : 학습률 자동 조정 → 수동 설정 불필요

학습 실행: model.fit()

예측 수행: model.predict()

 

Classification Models with Keras

[예제] 자동차 구매 결정 예측

입력 데이터 : 가격(price_high, price_medium, price_low), 유지비(maintenance_high, maintenance_medium, maintenance_low), 탑승 가능 인원(persons_2, persons_more)

→ 이미 one-hot 인코딩으로 전처리하여 범주→별도의 열로 변환한 데이터

출력값 데이터: Decision

  • 0 = 구매 불가
  • 1 = 괜찮은 선택
  • 2 = 좋은 선택
  • 3 = 매우 좋은 선택

 

모델 구조

입력: 8개의 feature

2개의 은닉층(hidden layer): 각 5개의 노드

출력층: 노드 4개 (클래스 수만큼)

→ Softmax 활성화 함수 사용. 확률 출력 (합 = 1)

 

전처리

분류 문제에서는 타겟 라벨을 직접 사용하지 않고, to_categorical()로 변환 필요

즉, [0, 1, 2, 3] 같은 정수형 라벨 → [1, 0, 0, 0], [0, 1, 0, 0] 형태로 변환

 

Keras 코드 구성 요소

모델 정의: Sequential 모델 사용

Dense 레이어를 add()로 추가

→ ReLU 함수 사용

출력층: Softmax 함수 사용

		# create model    
    model = Sequential()
    model.add(Input(shape=(num_pixels,)))
    model.add(Dense(num_pixels, activation='relu'))
    model.add(Dense(100, activation='relu'))
    model.add(Dense(num_classes, activation='softmax'))
        
    # compile model
    model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
    return model

 

학습 설정

손실 함수: categorical_crossentropy → 만약 실제 정답 y=[0,1,0], 예측 확률 \hat{y} = [0.1, 0.7, 0.2]이면:

$\mathcal{L} = - (0 \cdot \log 0.1 + 1 \cdot \log 0.7 + 0 \cdot \log 0.2) = -\log 0.7 \approx 0.357$

평가 지표: accuracy

모델 훈련: fit() 메서드 (여기서는 epoch 명시)

예측: predict() 메서드

→ 출력은 각 클래스에 대한 확률. 가장 높은 확률이 해당 데이터의 예측 클래스

 

예측 결과 해석

[0.99, 0.01, 0.00, 0.00] → class 0 (구매 불가)

[0.30, 0.50, 0.10, 0.10] → class 1 (괜찮은 선택, 낮은 확신)

확률 값의 크기를 통해 모델의 확신 정도도 파악 가능

 

Shallow vs Deep Neural Networks

항목 Shallow Neural Network Deep Neural Network
은닉층 수 1~2개 3개 이상
입력 처리 벡터 형태의 입력만 처리 이미지, 텍스트 등 원시(raw) 데이터 처리 가능
특징 추출 직접 설계 필요 자동으로 특징 추출 가능
복잡도 낮음 (이해 및 학습 쉬움) 복잡함 (성능은 우수하나 학습 어려움)

 

Deep Learning Boom 원인

딥러닝이 최근 급격히 발전한 배경은 다음 3가지로 요약됨

  1. 기술적 발전
    예를 들어, ReLU 활성화 함수의 도입으로 vanishing gradient 문제 극복할 수 있었고, 덕분에 매우 깊은 신경망의 학습 가능해졌다.
  2. 데이터
    딥러닝은 대용량 데이터에서 학습 효과가 탁월하며, 기존 머신러닝 알고리즘은 일정 데이터 이상에서는 성능 향상에 한계가 존재했다. 하지만, 딥러닝은 데이터가 많을수록 성능이 계속 향상되는 것을 보였다.
  3. 연산 자원(컴퓨팅 파워)의 발전
    GPU의 등장으로 수일 걸리던 학습이 수시간 내로 단축되었다. 덕분에 다양한 실험 및 프로토타이핑이 가능해졌다.
728x90
반응형

'🥇 certification logbook' 카테고리의 다른 글

[Coursera/IBM] Deep Learning & Neural Networks with Keras 코스 소개  (2) 2025.05.18
[Coursera/IBM course #2] Using Pretrained Models & Fine-Tuning  (0) 2025.05.18
[Coursera/IBM course #2] Transformers & Autoencoders  (1) 2025.05.18
[Coursera/IBM course #2] CNN & RNN  (1) 2025.05.17
[Coursera/IBM course #2] Backpropagation & Vanishing Gradient & Activation Functions  (0) 2025.05.11
[Coursera/IBM course #2] Gradient Descent  (0) 2025.05.11
[Coursera/IBM course #2] Neurons and Neural Networks & Artificial Neural Networks  (0) 2025.05.10
[Coursera/IBM] Introduction to Deep Learning & Neural Networks with Keras 코스 소개  (1) 2025.05.10
'🥇 certification logbook' 카테고리의 다른 글
  • [Coursera/IBM course #2] Transformers & Autoencoders
  • [Coursera/IBM course #2] CNN & RNN
  • [Coursera/IBM course #2] Backpropagation & Vanishing Gradient & Activation Functions
  • [Coursera/IBM course #2] Gradient Descent
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (207) N
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (57) N
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    datascience
    IBM
    자격증
    근로기준법
    온라인 강의 추천
    Coursera
    데이터사이언스 입문
    형법
    빅데이터분석기사
    법학과
    인공지능 입문
    방통대
    기본권의기초이론
    머신러닝
    민법
    ADsP
    데이터분석준전문가
    certificate
    Python
    deeplearning
  • hELLO· Designed By정상우.v4.10.3
이소야
[Coursera/IBM course #2] Deep Learning Libraries & Keras Models
상단으로

티스토리툴바