티스토리 뷰
🧠 블로그 1회차
왜 퍼셉트론은 생각을 못할까?
— 오차역전파가 등장하기 전, 신경망은 어디서 멈췄는가
1. 컴퓨터도 생각할 수 있을까?
아이들은 단어 하나를 배우면 규칙을 응용할 수 있습니다.
- walk → walked
- jump → jumped
- go → went (예외도 암기!)
이건 단순한 암기가 아니라,
👉 규칙과 예외를 스스로 구별하고 표현하는 능력입니다.
컴퓨터에게도 이런 능력을 줄 수 있을까요?
2. 퍼셉트론: 컴퓨터의 기본 뉴런
퍼셉트론은 뇌의 뉴런을 흉내 낸 계산 장치입니다.
입력에 숫자를 곱하고, 일정 값을 넘으면 1, 아니면 0을 출력합니다.
수식으로 쓰면 이렇게 됩니다:
y = f(w₁x₁ + w₂x₂ + b)
- ( x₁, x₂ ): 입력값 (예: 0 또는 1)
- ( w₁, w₂ ): 가중치
- ( b ): 바이어스
- ( f ): 계단 함수 또는 시그모이드 함수
3. 퍼셉트론이 잘하는 일: AND 문제
예를 들어 ‘AND’ 문제는 퍼셉트론이 잘 해결합니다.
x₁ | x₂ | 출력 (y) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
이걸 좌표평면에 표시해볼게요:
x₂
↑
1 | ○ ●
|
0 | ○ ○
+-------------→ x₁
0 1
- ●: 출력 1
- ○: 출력 0
→ 직선 하나로 0과 1을 구분할 수 있습니다.
→ 선형 분리(Linear separable)
4. 퍼셉트론이 못 푸는 문제: XOR
이제 ‘XOR’ 문제를 보겠습니다.
x₁ | x₂ | 출력 (y) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
좌표평면으로 보면 이렇게 됩니다:
x₂
↑
1 | ● ○
|
0 | ○ ●
+-------------→ x₁
0 1
- ●: 출력 1
- ○: 출력 0
→ 어떤 직선을 그어도 ●과 ○를 완벽히 나눌 수 없습니다.
→ 이걸 비선형 문제라고 부릅니다.
→ 퍼셉트론은 이걸 절대로 못 풉니다.
5. 왜 못 푸는가?
퍼셉트론은 입력과 출력 사이를 직선으로 나누는 구조이기 때문입니다.
XOR은 입력과 출력 사이에
👉 중간 개념(“두 입력이 다르면 1”)
이 있어야 해결이 가능합니다.
이런 중간 개념을 만들기 위해 필요한 것이
바로 은닉층(Hidden Layer) 입니다.
6. 은닉층이 있으면 해결될까?
아이디어는 이렇습니다:
- 입력 → 은닉층 → 출력
- 은닉층은 “입력의 특징”을 감지
- 출력층은 그걸 이용해 정답을 결정
즉, XOR 문제를 아래처럼 “두 단계로 나누면” 해결할 수 있습니다:
입력 → 중간 표현 → 출력
하지만 여기서 큰 문제가 하나 생깁니다.
7. 은닉층은 어떻게 학습시킬까?
출력층은 정답이 있으니까 학습할 수 있습니다.
오차 = (정답 - 출력)² 로 계산 가능하니까요.
하지만 은닉층은 정답이 없습니다.
→ “이 뉴런이 잘 작동했는지”를 알 수 없습니다.
→ 그래서 오차를 어떻게 계산할지 모릅니다.
이것이 당시 신경망 연구의 큰 벽이었습니다.
8. 문제 정리
- 퍼셉트론은 직선으로만 문제를 나눕니다 → XOR 같은 문제는 못 풉니다.
- 은닉층을 넣으면 해결할 수 있을 것 같지만…
- 은닉층에는 정답이 없어서 학습이 안 됩니다.
9. 다음 회차 예고
❓ 은닉층을 학습시키는 방법은 없을까?
바로 그 해답이
👉 오차역전파 알고리즘 (Backpropagation) 입니다.
📌 요약
항목 | 설명 |
---|---|
퍼셉트론 | 입력에 가중치를 곱해 출력을 내는 구조 |
선형 분리 | 직선 하나로 클래스 나누기 가능 |
XOR 문제 | 직선으로 나눌 수 없는 문제 (비선형 문제) |
은닉층 | 중간 개념을 만들기 위한 층 |
한계 | 은닉층은 정답이 없어 학습이 불가능했음 |
정답 없는 은닉층, 어떻게 오차를 줄일까?
— 오차역전파 알고리즘이 등장한 수학적 이유
1. 은닉층에는 정답이 없다
지난 글에서 우리는 퍼셉트론이 XOR 같은 문제를 못 푼다는 사실을 확인했습니다.
그래서 은닉층(hidden layer) 을 넣었죠.
입력층 → 은닉층 → 출력층
입력은 그대로인데, 은닉층에서 중간 개념을 만들어
출력층이 문제를 잘 풀 수 있도록 도와주는 구조입니다.
그런데… 문제는 은닉층에는 정답이 없다는 것입니다.
정답이 없으면 → 오차도 없고 → 학습도 못 합니다.
2. 출력층은 왜 학습이 가능한가?
출력층은 정답과 비교해서 오차(error) 를 계산할 수 있습니다.
✏️ 평균제곱오차 (MSE)
E = \frac{1}{2}(T - O)^2
- ( T ): 정답 (Target)
- ( O ): 출력값 (Output)
- ( E ): 오차
이렇게 오차를 수식으로 표현하면,
그 오차를 줄이기 위한 방향을 계산할 수 있습니다.
3. 오차를 줄이는 방법: 경사 하강법
오차를 줄이려면, 가중치를 어떻게 바꿔야 할지 알아야 합니다.
그 방향을 알려주는 것이 기울기(gradient) 입니다.
✏️ 경사 하강법
w \leftarrow w - \eta \cdot \frac{\partial E}{\partial w}
- ( \eta ): 학습률
- ( \frac{\partial E}{\partial w} ): 가중치에 대한 오차의 기울기
기울기는 오차가 가장 빨리 줄어드는 방향을 뜻합니다.
마치 산을 내려갈 때 가장 가파른 쪽으로 내려가는 것처럼요.
4. 퍼셉트론은 왜 배울 수 없었나?
퍼셉트론은 아래와 같은 계단 함수를 사용합니다:
f(x) = \begin{cases}
1 & x > 0 \\
0 & x \leq 0
\end{cases}
문제는 이 함수가 ‘끊겨 있는’ 함수라는 것입니다.
📌 잠깐! 왜 끊긴 함수는 미분할 수 없을까?
비유로 설명하자면:
- 미분은 그래프에서 기울기를 구하는 작업입니다
- 그런데 계단처럼 갑자기 점프하는 함수는
그 점에서의 기울기를 계산할 수 없습니다
미분을 하려면, 함수가 연속(끊김 없이 연결) 되어 있어야 합니다.
즉, 그래프가 뚝 끊기면 → 기울기(접선)를 그릴 수 없기 때문입니다.
5. 그래서 시그모이드 함수가 도입되었다
이 논문은 이런 문제를 해결하기 위해
연속적이고, 부드럽고, 미분 가능한 함수를 씁니다.
그게 바로 시그모이드(sigmoid) 함수입니다.
f(x) = \frac{1}{1 + e^{-x}}
- 입력이 작으면 0에 가까워지고
- 크면 1에 가까워지며
- 중간에서 부드럽게 바뀌는 S자 곡선
→ 이 함수는 연속적이고,
→ 어디서든 미분이 가능합니다!
✏️ 시그모이드의 도함수
f'(x) = f(x)(1 - f(x))
이 간단한 도함수 덕분에
오차를 줄일 방향을 계산할 수 있게 됩니다.
6. 출력층은 이렇게 학습합니다
정답과 예측의 차이가 생기면,
그 차이(오차)를 줄이기 위해
출력 뉴런의 가중치를 조정해야 합니다.
그때 필요한 것이 델타(δ) 라는 값입니다.
✏️ 출력 뉴런의 델타
\delta_k = (O_k - T_k) \cdot f'(net_k)
- ( O_k ): 출력값
- ( T_k ): 정답
- ( f'(net_k) ): 도함수
→ 오차의 방향 × 민감도
7. 그럼 은닉층은 어떻게?
여기서 다시 문제로 돌아옵니다.
❓ 은닉층에는 정답이 없는데, 어떻게 오차를 줄이죠?
이게 이 논문이 풀려고 한 진짜 문제입니다.
8. 오차를 거꾸로 전달하자: 오차역전파
출력 뉴런에서 계산한 오차를
되돌려서 은닉 뉴런에 나눠주는 방식입니다.
이 과정에 사용되는 수학적 도구가
바로 연쇄 법칙 (Chain Rule) 입니다.
9. 오차 전달 구조 (Fig. 2 개념 요약)
Forward:
입력층 → 은닉층 → 출력층
Backward:
δ출력
↑
δ은닉 = 출력오차 × 연결가중치 × 도함수
출력 오차가 크고, 연결 가중치가 크고, 도함수가 크면
→ 그만큼 은닉 뉴런이 오차에 책임이 있다는 뜻
10. 은닉 뉴런 오차 계산 공식
\delta_j = f'(net_j) \cdot \sum_k w_{jk} \cdot \delta_k
- ( w_{jk} ): 은닉 → 출력 연결 가중치
- ( \delta_k ): 출력 오차
- ( f'(net_j) ): 은닉 뉴런의 도함수
→ 출력 오차를 거꾸로 분배해 은닉층도 학습이 가능해졌습니다.
11. 표현(Representation)의 의미
이제 단순히 “은닉층도 학습할 수 있다”는 걸 넘어서,
이 논문이 보여준 진짜 의미에 대해 이야기해봅시다.
❗ 은닉층은 단순 계산기가 아니라,
입력 정보를 새로운 방식으로 ‘이해’하는 공간입니다.
예를 들어
- 입력: 단어의 스펠링
- 은닉층: ‘규칙 동사’와 ‘불규칙 동사’를 구별하는 공간
- 출력: 과거형 예측
→ 이때 은닉층은
입력을 의미 공간으로 다시 배치하는 작업을 한 셈입니다.
📌 이번 회차 요약
항목 | 설명 |
---|---|
퍼셉트론 한계 | 미분 불가능한 함수 사용 → 학습 불가 |
시그모이드 도입 | 연속 + 미분 가능 → 경사하강법 사용 가능 |
출력 오차 | 정답과 출력 차이 → 델타 계산 |
은닉 오차 | 출력 오차를 거꾸로 전달해서 계산 |
연쇄 법칙 | 역전파 수학의 핵심 |
표현 | 은닉층이 입력을 이해하는 방식 자체 |
표현이란 무엇인가:
은닉층은 데이터를 어떻게 이해하는가?
— Representation은 단순한 값이 아니라, 학습된 구조이다
1. 진짜 질문부터 시작합니다
컴퓨터가 단어를 보고 과거형을 맞힐 수 있다면,
단순히 정답을 외운 걸까요?
아니면 단어의 규칙과 예외를 이해한 걸까요?
이 논문은 여기에 대답합니다.
- 단순한 정답 예측이 아니라
- 입력 데이터를 해석해서, 의미 있는 구조로 재배열하는 과정,
- 즉, 표현(Representation) 이 학습되었음을 은닉층의 출력값으로 증명합니다.
2. 표현이란 무엇인가?
은닉층의 출력값을 흔히 “표현”이라고 부릅니다.
그런데 여기서 말하는 표현이란 단순한 숫자값이 아닙니다.
표현이란:
컴퓨터가 학습을 통해 입력 데이터를 예측에 유리한 방식으로 변환한 구조입니다.
즉, 입력 데이터가 가진 의미적 차이와 유사성을 숫자 공간에 배열한 것입니다.
3. 표현은 어떻게 만들어질까?
— 데이터와 오차, 그리고 은닉층의 역할
학습 초기에 컴퓨터는 모든 단어를 동일하게 처리합니다.
예를 들어 단어 “walk”, “go”, “jump”에 대해 은닉층의 출력은 아래처럼 비슷합니다:
walk → [0.51, 0.49]
go → [0.52, 0.48]
jump → [0.50, 0.50]
그 이유는:
- 가중치가 랜덤 초기화돼 있기 때문
- 데이터에 대한 구조적인 이해가 전혀 없는 상태이기 때문
4. 그럼 학습은 어떤 역할을 하나?
학습은 아래의 과정으로 이루어집니다:
- 입력을 받아 → 출력값을 계산하고
- 출력값과 정답의 차이를 측정한 뒤
- 그 오차를 은닉층까지 역전파하여
- 은닉층 가중치를 조금씩 바꿉니다
이걸 수백 번 반복하면 은닉층은 아래처럼 바뀝니다:
walk → [0.92, 0.13]
go → [0.14, 0.89]
jump → [0.90, 0.16]
→ 규칙 동사 walk와 jump는 비슷한 위치에,
→ 불규칙 동사 go는 완전히 다른 방향으로 이동하게 됩니다.
5. Fig. 3: 실제 실험에서 본 은닉층 표현
실험에서는 약 460개의 동사를 학습시켰습니다.
학습이 완료된 뒤, 은닉층 뉴런의 출력값을 2D 평면에 시각화했더니:
- 규칙 동사들끼리는 가깝게 뭉쳐 있고
- 불규칙 동사들은 다양한 방향으로 분리되어 있음
이 말은:
컴퓨터는 단순히 정답을 예측하는 게 아니라,
입력 데이터 간의 유사성과 차이를 반영한 구조를 은닉층 안에 만들었다는 뜻입니다.
6. 이게 바로 표현(Representation)
표현은 ‘단어 → 과거형’ 이라는 문제를 풀기 위해
컴퓨터가 스스로 만든 데이터의 새로운 좌표계입니다.
- 원래 입력은 철자였지만
- 은닉층은 그것을 “규칙 동사 vs 예외 동사”처럼
분류하기 좋은 방식으로 바꾸었습니다.
이 과정을 통해 컴퓨터는
의미적으로 비슷한 입력을 가까운 값으로,
다른 입력은 멀리 떨어진 값으로 표현하게 된 것입니다.
7. XOR 문제: 표현의 또 다른 예시 (Fig. 4)
XOR 문제는 단층 퍼셉트론이 절대 못 풀던 문제입니다.
입력-출력 예시:
입력 | 출력 |
---|---|
0,0 | 0 |
0,1 | 1 |
1,0 | 1 |
1,1 | 0 |
여기서도 신경망은 학습을 통해
은닉 뉴런이 “두 입력이 다를 때만 활성화되는 구조”를 만듭니다.
예시:
(0,1) → 은닉 = 0.9
(1,0) → 은닉 = 0.9
(0,0) → 은닉 = 0.1
(1,1) → 은닉 = 0.1
→ 은닉 뉴런이 "다르다"라는 개념을 표현하는 중간 개념으로 작동한 것입니다.
8. 표현은 “개념의 공간”이다
정리하자면,
- 표현은 단지 은닉층 값이 아니라
- 입력 데이터를 ‘구분하고 분류할 수 있는 공간’으로 바꾼 결과입니다
즉, 표현이란:
컴퓨터가 배운 개념 자체를 숫자 벡터로 구현한 것
이 공간 안에서는:
- 같은 규칙을 따르는 단어끼리는 가깝고
- 예외는 따로 떨어져 있고
- 특정 추상 개념(XOR의 “다름”)이 은닉 뉴런 하나로 구현됩니다.
📌 이번 회차 요약
개념 | 설명 |
---|---|
표현 | 은닉층이 학습을 통해 만든 입력의 재해석 구조 |
데이터 관점 | 철자나 수치를 입력받아 유사성/차이점 기반으로 분류 |
학습 관점 | 출력 오차를 역전파하여 은닉층 가중치를 조정 |
Fig. 3 | 규칙/예외 동사를 분리한 은닉층 공간 |
Fig. 4 | XOR 문제의 “다름”을 은닉 뉴런이 표현함 |
핵심 | 표현은 숫자가 아니라 컴퓨터가 만든 개념의 지도이다 |
컴퓨터가 단어의 ‘의미’를 구분했다고요?
— 표현(Representation)이 단어의 관계까지 드러내는 실험, Fig. 5
1. 단어에도 거리감이 있다면?
우리는 “엄마”와 “부모”가 비슷하고,
“엄마”와 “자동차”는 다르다는 걸 자연스럽게 느낍니다.
이런 감각은 단어 사이에 내재된 의미 구조를
머릿속에 좌표처럼 가지고 있기 때문입니다.
그런데...
❗ 컴퓨터도 그런 ‘의미 공간’을 스스로 만들어낼 수 있다면요?
이번 회차는 바로 이 질문을 다룬 Fig. 5 실험을 중심으로 설명합니다.
2. 실험 개요: Fig. 5
실험 목적
- 신경망이 단어와 숫자의 의미적 관계를 표현할 수 있는가?
- 즉, “이건 사람 이름이다”, “이건 수량이다” 같은
의미 차이를 내부에서 구분할 수 있는가?
실험 구성
항목 | 내용 |
---|---|
입력 | 단어 (예: MAN, WOMAN, ONE, TWO 등) |
출력 | 해당 단어의 one-hot 벡터 |
은닉층 | 2개 뉴런 (그래프 시각화를 위해 제한) |
학습 방법 | 오차역전파를 사용한 반복 학습 |
3. 은닉층은 어떤 표현을 만들었는가?
학습이 끝난 뒤,
각 단어에 대해 은닉층의 2개 뉴런 출력값을
2차원 평면에 그래프로 그려보았습니다.
결과는 매우 놀라웠습니다.
(숫자)
TWO THREE
● ●
ONE
●
(사람 이름)
● ●
MAN WOMAN
- 숫자들은 한쪽에
- 사람 이름은 다른 한쪽에
- 두 그룹이 은닉층에서 공간적으로 분리됨
컴퓨터는 단어 철자만 보고도
숫자 vs 사람 이름을 구분하는 의미 표현을 학습한 셈입니다.
4. 이건 단순 분류가 아닙니다 — 의미의 공간화
- 입력은 문자(철자)뿐
- 정답은 그 단어 자체
- 사람/숫자 분류라는 목표는 전혀 주어지지 않음
그런데도:
- 비슷한 의미를 가진 단어는 은닉층 출력이 비슷하고
- 다른 의미를 가진 단어는 멀리 배치됨
이것이 바로 은닉층이 만들어낸 표현 공간입니다.
5. 왜 2차원 은닉층을 썼는가?
논문은 은닉 뉴런을 2개만 사용했습니다.
이유는 간단합니다.
- 시각화를 위해서
- 사람이 표현 공간을 직접 볼 수 있도록
→ 은닉층이 만든 의미 좌표계를 관찰 가능하게 했던 것이죠.
6. 이 실험이 주는 시사점
항목 | 설명 |
---|---|
의미 구분 없음 | 컴퓨터는 단어를 문자로만 인식함 |
출력 목표 | 단어 자체를 맞히는 것뿐 |
결과 | 숫자 vs 사람 이름이 은닉층 공간에서 분리됨 |
결론 | 컴퓨터는 단어 간 의미 관계를 스스로 구조화할 수 있음 |
좋습니다. 이제 Rumelhart et al. (1986) 논문 블로그 시리즈의 마지막,
5회차를 작성합니다.
이번 회차는 다음을 목표로 합니다:
🎯 5회차 목표
- 오차역전파(backpropagation)의 철학적 의미와 기술적 의의 정리
- 이 알고리즘이 단순한 학습 기술이 아닌,
표현(Representation)을 만들기 위한 핵심 메커니즘이라는 점 강조 - 이 논문이 딥러닝 시대를 여는 출발점이 되었음을 증명
오차는 단순한 차이가 아니었다
— 딥러닝의 시작점, 오차역전파의 철학과 의미
1. 컴퓨터는 왜 실수를 해야 했을까?
이 논문은 겉보기엔
“오차를 줄이는 방법”에 관한 기술 논문입니다.
하지만 깊이 들어가보면… 전혀 다릅니다.
❗ 이 논문은 “오차를 어떻게 나누는가”에 관한 이야기입니다.
단순히 출력 뉴런이 틀렸다고 해서
모든 가중치가 똑같이 잘못된 건 아닙니다.
누가 얼만큼 책임이 있는지를 계산하고,
그 책임만큼 가중치를 조정하는 것.
→ 그게 바로 오차역전파입니다.
2. 우리가 배운 건 오차를 나누는 법이었다
출력층은 정답이 있으니 오차를 직접 계산할 수 있습니다.
하지만 은닉층은 정답이 없습니다.
그럼에도 불구하고 우리는 이렇게 했습니다:
- 출력 오차를
- 연쇄법칙으로 거슬러 올라가
- 은닉층까지 오차를 나눠줍니다
이 과정을 통해 모든 뉴런이 오차에 대한 자신의 기여만큼 학습하게 됩니다.
3. 수학으로 생각하면 이렇게 됩니다
은닉 뉴런 하나가 출력 오차에 기여한 정도는
그 뉴런의 출력, 연결 가중치, 출력 오차를 조합하면 알 수 있습니다.
\delta_j = f'(net_j) \cdot \sum_k w_{jk} \cdot \delta_k
그리하여 전체 오차 함수 ( E ) 는
각 가중치에 대해 미분 가능하고,
모든 층이 동시에 학습할 수 있게 됩니다.
신경망은 더 이상 블랙박스가 아닙니다.
내부의 뉴런 하나하나가 오차에 책임을 지고,
자신의 역할을 업데이트할 수 있게 된 것입니다.
4. 표현은 오차로부터 만들어진다
우리가 앞선 회차에서 살펴본 표현들:
- 규칙/불규칙 동사의 구분 (Fig. 3)
- XOR의 "다름"이라는 개념 (Fig. 4)
- 숫자 vs 인명 개념 공간 (Fig. 5)
이 모든 것은 정답과의 차이(오차) 를
구성 요소들에게 나눠준 결과입니다.
즉, 표현은 다음과 같이 만들어졌습니다:
입력값 → 예측 → 정답과 비교 → 오차 계산 →
역전파로 책임 분배 → 내부 표현 수정 → 표현 형성
5. 이 논문이 만든 진짜 변화
1986년 이전까지는 다음과 같은 생각이 지배적이었습니다:
“컴퓨터는 규칙을 알아야 학습할 수 있다.”
그러나 이 논문은 보여줍니다:
- 컴퓨터는 정답만 주면
- 입력 사이의 관계를 표현하는 구조를 스스로 만들 수 있고
- 그 구조를 반복 학습을 통해 점점 더 정교하게 다듬을 수 있습니다.
이 철학은 곧 딥러닝의 철학입니다.
6. 딥러닝의 출발점: 이 논문이 남긴 것들
핵심 개념 | 의의 |
---|---|
오차역전파 | 다층 신경망의 학습을 가능케 한 최초의 실용 알고리즘 |
표현(Representation) | 입력 데이터를 의미적으로 재배열하는 은닉층의 출력 |
은닉층 학습 | 정답 없이도 역전파로 학습이 가능함을 수학적으로 증명 |
표현의 진화 | 오차 분배를 통해 점진적으로 의미 구조가 형성됨 |
딥러닝의 시작 | 이 논문 이후 계층적 학습 구조의 발전이 시작됨 |
📌 마무리 요약
- 오차는 단순한 차이가 아니라
표현을 만들어내는 원동력입니다 - 오차를 나눠주는 방식은
컴퓨터가 스스로 구조를 만들 수 있는 기반이 됩니다 - 이 논문은
“신경망이 어떻게 생각하게 되었는가”에 대한
수학적 선언이자 기술적 출발점입니다
은닉층은 정답이 없기 때문에 오차를 계산할 수 없어 학습이 불가능하다는 문제가 있었다.
저자들은 출력층 오차를 연쇄법칙을 이용해 은닉층까지 역전파하는 방법을 제안했다.
그 결과, 다층 신경망의 모든 층이 학습 가능해졌고 의미 기반 표현 학습이 가능해졌다.
Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986).
Learning representations by back-propagating errors. Nature, 323(6088), 533–536. https://doi.org/10.1038/323533a0
'머신러닝 > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
퍼셉트론 논문 리뷰 (0) | 2025.03.25 |
---|---|
A logical calculus of the ideas immanent in nervous activity. (McCulloch, W. S., & Pitts, W. , 1943) (0) | 2025.03.24 |
- Total
- Today
- Yesterday
- 일본어문법무작정따라하기
- 티스토리챌린지
- 조건형성
- Python
- 인지부조화
- 윤성우
- 류근관
- 여인권
- 강화학습
- 파이썬
- 보세사
- c++
- 회계
- 정보처리기사
- C/C++
- stl
- 사회심리학
- 데이터분석
- 뇌와행동의기초
- C
- 통계
- K-MOOC
- 심리학
- 통계학
- 일문따
- 일본어
- 열혈프로그래밍
- 오블완
- 백준
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |