티스토리 뷰
728x90
반응형
케라스(Keras)는 딥러닝 모델을 쉽고 빠르게 구축할 수 있도록 도와주는 고수준의 파이썬 라이브러리입니다. 이 글에서는 딥러닝 모델의 핵심 구성 요소인 데이터와 텐서, 모델 및 레이어, 활성화 함수와 함께 케라스의 API 개요에 대해 알아보겠습니다.
1. 데이터와 텐서의 개념
데이터와 텐서란?
- 데이터
딥러닝에서 데이터는 이미지, 텍스트, 숫자 등 모델 학습에 필요한 입력값을 의미합니다. 이 데이터는 일반적으로 수치 데이터로 변환되어 모델에 입력됩니다. - 텐서(Tensor)
텐서는 다차원 배열(multidimensional array)을 의미하며, 딥러닝 라이브러리의 핵심 자료구조입니다.
예를 들어,- 스칼라 (0차원 텐서): 단일 값
- 벡터 (1차원 텐서): 값들의 리스트
- 행렬 (2차원 텐서): 행과 열로 구성된 값들의 배열
- 고차원 텐서: 이미지 데이터의 경우 (높이, 너비, 채널)의 3차원 배열 등
케라스는 이러한 텐서를 활용해 데이터를 표현하며, 텐서플로(TensorFlow) 같은 백엔드를 통해 연산이 수행됩니다.
2. 모델, 레이어, 활성화 함수 등 핵심 구성 요소
모델(Model)
- 정의:
모델은 딥러닝 네트워크 전체를 의미하며, 입력 데이터를 받아 처리하고 최종 예측 결과를 출력하는 구조를 가집니다. - 구성:
모델은 하나 이상의 레이어(Layer) 로 구성되어 있습니다. - 예시:
Sequential 모델은 간단하게 레이어를 순차적으로 쌓아 올린 형태입니다.
레이어(Layer)
- 정의:
레이어는 신경망의 기본 단위로, 입력을 받아 가중치 연산과 비선형 함수 적용 등을 수행합니다. - 종류:
- Dense (완전 연결 레이어): 모든 입력 노드가 출력 노드에 연결됩니다.
- Convolutional (합성곱 레이어): 이미지 처리에 주로 사용되며, 필터를 통해 특징을 추출합니다.
- Recurrent (순환 레이어): 시계열 데이터나 자연어 처리에 활용됩니다.
- 역할:
각 레이어는 입력 데이터에 대해 특정 연산(예: 선형 변환, 비선형 활성화 적용 등)을 수행하여 다음 레이어로 넘겨줍니다.
활성화 함수(Activation Function)
- 정의:
활성화 함수는 레이어의 출력에 비선형성을 추가해 주는 역할을 합니다. 이를 통해 신경망은 복잡한 문제도 해결할 수 있습니다. - 주요 함수:
- ReLU (Rectified Linear Unit): 입력이 0 이하일 때 0, 그 외에는 그대로 반환합니다.
- Sigmoid: 출력값을 0과 1 사이로 제한하여 이진 분류에 유용합니다.
- Softmax: 다중 클래스 분류 문제에서 각 클래스에 대한 확률 분포를 제공합니다.
- 중요성:
활성화 함수가 없다면 여러 레이어를 쌓더라도 전체 모델은 단순 선형 변환만을 학습하게 되어 복잡한 문제를 해결할 수 없습니다.
3. 케라스의 API 개요
케라스는 사용자의 편의를 위해 두 가지 주요 API 방식을 제공합니다.
Sequential API
- 특징:
- 레이어를 순차적으로 쌓아올리는 간단한 모델 구조에 적합합니다.
- 직관적이고 사용하기 쉬워 딥러닝 입문자에게 추천됩니다.
- 예제:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential([
Dense(64, activation='relu', input_shape=(100,)),
Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
위 코드는 입력 차원이 100인 데이터를 받아 두 개의 Dense 레이어를 통과시켜 다중 분류를 수행하는 모델입니다.
Functional API
- 특징:
- 복잡한 모델 구조(예: 다중 입력/출력, 잔차 연결 등)를 설계할 때 유용합니다.
- 레이어 간의 자유로운 연결이 가능하여 다양한 네트워크 구조를 구현할 수 있습니다.
- 예제:
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
inputs = Input(shape=(100,))
x = Dense(64, activation='relu')(inputs)
outputs = Dense(10, activation='softmax')(x)
model = Model(inputs=inputs, outputs=outputs)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Functional API를 사용하면 입력과 출력을 명시적으로 정의하여 복잡한 연결 구조를 쉽게 표현할 수 있습니다.
마무리
이 글에서는 케라스에서 딥러닝 모델의 기초가 되는 데이터와 텐서의 개념, 모델 및 레이어와 활성화 함수의 역할, 그리고 케라스의 대표적인 API인 Sequential과 Functional API에 대해 살펴보았습니다.
계속해서 케라스에 대한 공부하는 내용들에 대해서 블로그 글을 작성해 보도록 하겠습니다.
728x90
반응형
'머신러닝&딥러닝' 카테고리의 다른 글
모델 저장 및 재사용 (0) | 2025.02.28 |
---|---|
모델의 컴파일, 학습 및 평가 (0) | 2025.02.28 |
Functional API를 활용한 모델 구성 (1) | 2025.02.28 |
Sequential 모델로 시작하기 (0) | 2025.02.28 |
딥러닝: 치트시트 (Deep Learning : CheatSheet) (3) | 2024.11.07 |
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 장고 orm sql문 비교
- chat gpt 4o 예산
- 케라스
- GitHub
- 인공지능 로또 예측
- 티스토리챌린지
- 오블완
- 텍스트 전처리
- python 문자열 슬라이싱
- 1164회 로또
- 토치비전
- chat gpt 한국어 가격
- 로또 ai
- github action
- 텍스트 마이닝
- chat gpt 모델 api 가격 예측
- pytorch
- chat gpt 가격 예상
- chat gpt api 비용 계산
- postgre
- 클래스형 뷰
- TorchVision
- Numpy
- chat gpt 모델별 예산
- f-string
- 1165회 로또
- 로또 1164회 당첨
- Python
- chat gpt 모델 별 가격
- python import
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함