퍼셉트론(ANN)
입력층으로 표현하지만 실질적 연산은 일어나지 않음
다층 퍼셉트론 ⇒ 출력층(뉴런의 핵심 기능인 다항연산과 시그모이드라는 function으로 이루어짐) 하나만 있다는 뜻
다양한 형태의 자극 정보가 들어오면 각각의 가중치가 적용되어 최종 합산 ⇒ 출력층으로
활성함수
y=0 /1 출력의 결과에 의해서 다음 번 뉴런을 활성화할지말지 정해짐
self attention = w의 집합
w는 새로운 시각 벡터를 만들어내는거라고 이해해야함 → 수십차원일거임 1차원아님 !
y’ = w1x0 + w2x1 + wx2
트랜스포머는 다양한연산을 통해 다양한 관점을 보고 싶을 떄 사용하는 것
가운데는 연산을 위한 노드의 개수
출력은 관점 개수 ?
입출력 개수 맞춰야하는데 시퀀셜이 해줌
sequential에 대해 확인하기
입력층 없음 ⇒ 우리가 설정하는거 아님
중간층 = layers.Dense(512, activation="relu"), ⇒ 각 칼럼 값은 1차원 ⇒ 다 합쳐져서 2차원
출력층= layers.Dense(10, activation="softmax") ⇒ mnlist가 열개라서
1. 퍼셉트론과 인공신경망(ANN)의 구조
퍼셉트론은 인간의 뇌세포(뉴런)를 모방한 인공 지능의 가장 기초적인 단위
- 입력층 (Input Layer):
- 메모하신 대로 실제 연산은 일어나지 않음
- 단순히 데이터(x)가 시스템으로 들어오는 통로 역할
- 가중치 (Weights, w):
- 각 입력 신호가 결과에 주는 영향력을 조절
- 학습이란 결국 데이터에 맞는 최적의 w 값을 찾아가는 과정
- 출력층 (Output Layer):
- 들어온 자극(x.w)을 모두 합산한 뒤,
- 활성함수(Activation Function)를 거쳐 최종값을 내보냄
2. 활성함수 (Activation Function)
뉴런이 다음 뉴런으로 신호를 보낼지 말지 결정하는 '문지기'
- Step Function: 과거의 방식. 0 아니면 1로만 출력
- Sigmoid: 0~1 사이의 연속적인 확률값으로 출력 (초기 딥러닝에서 주로 사용)
- ReLU: 최근 가장 많이 쓰이는 함수.
- 음수는 0으로,
- 양수는 그대로 통과시켜 연산 속도가 빠름
- Softmax: 다중 분류(예: MNIST 숫자 0~9 맞추기)에서 사용하며, 출력값의 총합이 1(100%)이 되도록 만들어 어떤 클래스일 확률이 높은지 보여줌
3. Self-Attention과 트랜스포머 (Deep Dive)
w는 새로운 시각 벡터를 만드는 것
- Self-Attention: 입력 데이터 내의 요소들끼리 서로 얼마나 연관이 있는지 계산
- 다양한 관점 (Multi-Head Attention):
- 트랜스포머는 같은 데이터를 여러 개의 서로 다른 가중치 집합(w)으로 바라봄
- 어떤 w는 문법을 보고, 어떤 w는 문맥을 봄
- 결과적으로 1차원적인 수치가 아니라 수십 차원의 고차원 벡터로 정보를 재구성
4. Keras/TensorFlow 코드 분석 (Sequential 모델)
Sequential 모델이란?
계층(Layer)을 선형으로 차곡차곡 쌓는 가장 단순한 구조
"입력 → 중간 → 출력" 순서대로 데이터가 흐름
주요 레이어 분석
구분 코드 예시 설명
| 중간층 (Hidden) | layers.Dense(512, activation="relu") | 512개의 노드(뉴런)를 가짐 |
| 데이터의 특징을 512개의 관점으로 복잡하게 추출 | ||
| 출력층 (Output) | layers.Dense(10, activation="softmax") | MNIST처럼 0~9까지 숫자를 맞추는 문제라면 결과값이 10개가 나와야 하므로 노드 수를 10으로 설정 |
- 입력층 설정: Sequential 모델에서 첫 번째 레이어에 input_shape를 지정하거나, 데이터를 처음 넣을 때 자동으로 크기가 결정

1. 입력층과 가중치 (w)
그림의 가장 왼쪽 x1, ..., xn 부분이 입력층
- 1 (Bias):
- 맨 위에 있는 숫자 '1'은 편향(Bias)을 의미
- 데이터가 아무리 0이어도 최소한의 자극을 주어 모델이 유연하게 학습하게 도움
- 화살표 (w):
- 각 입력값에 곱해지는 가중치
- 이 화살표들의 굵기(값)를 조절하는 것이 인공지능 학습의 본질
2. 중간층 (Hidden Layer): "다항식과 활성함수의 만남"
그림 중간의 큰 원 안을 보면 다항식과 '$f$'로 나뉘어있음 → 이게 뉴런 한 개가 하는 일의 전부
- 다항식 연산: $w_1x_1 + w_2x_2 + \dots + b$ 처럼 들어온 신호들을 가중치와 곱해서 다 합.
- 활성함수 ($f$):
- 합산된 결과값을 받아서 "다음 층으로 보낼까 말까?"를 결정
- ReLU나 Sigmoid가 바로 이 $f$의 자리에 들어갑니다.
- 관점: 512개의 노드가 있다면, 똑같은 입력 데이터를 보고도 512개의 서로 다른 '다항식+활성함수' 조합(관점)으로 데이터를 해석한다는 뜻
3. 출력층 (Output Layer): "최종 판단"
오른쪽 끝에 있는 3개의 노드는 최종 결과를 나타냄
- $F : p(Y)=1$: 특정 클래스(예: 숫자 3)일 확률을 계산함
- 결과값 (0, 1, 1): 그림 우측 상단의 0 1 1 = 3이라는 표현은, 여러 노드의 출력 조합을 통해 최종적으로 "이 데이터는 숫자 3이다"라고 판정하는 과정을 의미
🔍 이미지 속 핵심 포인트 복습
- 노드 내부 구조: 하나의 노드는 [가중합(다항식) ➔ 활성함수(f)]
- 의 2단계 공정으로 이루어짐
- 연결성:
- 모든 입력이 모든 중간 노드에 연결
- 이를 Dense(전결합) 레이어라 부름
신경망의 연결 =층의 연결
신경망의 핵심 구성 요소는 층
층 :
- 데이터를 위한 필터
- 주어진 문제에 더 의미있는 표현을 입력된 데이터로 추출
케라스 모델을 만드는 여러 방법
sequential model
기울기 소실 문제
층을 깊게 쌓아야 좋긴한데 너무 많아 지면 기울기 소실 문제
잔차 학습 ~ 등등의 필요
식의 튜닝 일어남
텐서플로우는 접근을 돌아주는게 케라스
가장 기본이 데이터셋을 전처리 해서 가지고 옴
배열 만들음 → 준비된 데이터 정보를 학습하라고 신경망(층을 쌓으면 된다) 구축
쌓기만 하면 됨 ⇒ 병렬 구조 안됨 . sequence로 쌓아야한다
병렬로 연결 안 함
[순서 ㅈㄴ중요]
모델 만들고 → 컴파일해서 → 최적화 하고 → fitting (epoch, 배치사이즈) → 유효성 검사→ 평가
1. 신경망의 핵심과 구조적 특징
- 층(Layer)의 역할: 데이터를 통과시키며 불필요한 정보는 거르고 문제 해결에 필요한 핵심 특징만 걸러내는 '필터' 역할을 수행
- Sequential 모델:
- 층을 일직선으로 순차적으로만 쌓는 방식
- 구조가 단순하여 병렬 연결(여러 길로 갈라지는 구조)은 불가능
- 깊은 층의 양날의 검:
- 층이 깊을수록 고차원적인 특징을 추출할 수 있어 성능이 좋아지지만, 너무 깊어지면 학습 신호가 사라지는 기울기 소실(Vanishing Gradient) 문제가 발생함. 이를 해결하기 위해 잔차 학습(Residual Learning) 같은 기술로 식을 튜닝해야 함.
2. [중요] 딥러닝 모델 실행 순서 (Pipeline)
신경망 학습은 아래의 엄격한 순서를 따름. 이 순서가 틀리면 모델이 작동하지 않거나 학습이 제대로 되지 않음.
- 데이터 준비 및 전처리 (Preprocessing):
- 데이터셋 적재 후 신경망이 읽을 수 있는 배열(Tensor) 형태로 만듦.
- 2차원 이미지를 1차원 줄세우기(Reshape)하고, 값을 0~1 사이로 맞춤(Scaling).
- 모델 구축 (Build):
- keras.Sequential을 사용하여 필요한 층(Layer)을 차례대로 쌓음.
- 컴파일 (Compile):
- 최적화 도구(Optimizer): 가중치를 어떻게 업데이트할지 정함(예: rmsprop).
- 손실 함수(Loss Function): 정답과 얼마나 틀렸는지 계산할 식을 정함.
- 훈련 (Fitting):
- model.fit()을 통해 데이터를 주입함.
- Epoch: 전체 데이터를 몇 번 반복해서 볼 것인가.
- Batch Size: 한 번에 몇 개씩 묶어서 학습하고 가중치를 업데이트할 것인가.
- 유효성 검사 및 평가 (Validation & Evaluation):
- 학습 중 혹은 학습 후, 한 번도 보지 못한 데이터(Test set)로 모델의 실력을 최종 확인 함.
3. 케라스(Keras)와 텐서플로우(TensorFlow)의 관계
- 텐서플로우: 아주 복잡하고 로우레벨(Low-level)의 연산을 담당하는 엔진임.
- 케라스: 텐서플로우 위에서 사람이 이해하기 쉬운 직관적인 명령어로 신경망을 쌓게 도와주는 도구임. 즉, 케라스 덕분에 복잡한 수식 대신 layers.Dense 같은 명령어로 층을 쌓을 수 있는 것임.
'LG DX DATA SCHOOL' 카테고리의 다른 글
| 02/09 mnlist (1) | 2026.02.13 |
|---|---|
| 02/03 화 02/05 목요일 SVM (0) | 2026.02.09 |
| 0130 인공신경망 (0) | 2026.01.30 |
| 0129 목요일 추천시스템 (0) | 2026.01.30 |
| 01/27 NLP (0) | 2026.01.27 |