비전공자의 AI 부트캠프 일지 #8
딥러닝 기초 개념 이해하기
부제 : 딥러닝 개념 및 원리 정리하기
딥러닝을 공부하면서 내가 궁금해진 것들
머신러닝 파트를 배울 때까지만 해도 이게 정말 데이터&AI 개발 과정이 맞을까?라는 생각이 들었다. 지금까지 배운 것만으로는 기획도 애매하고, 개발도 어려운 것은 아닐까? 그리고 내가 무엇을 할 수 있을까? 하는 생각이 들었다. 바로 딥러닝을 배우기 전까지... 딥러닝 파트를 배우면서 깨닫게 된 것은 '이 과정은 AI 개발을 위한 커리큘럼이었다.'라는 걸 실감했다.
막연하게 GPT, 클로드 등 LLM(글을 많이 학습한 모델) 및 LMM(글뿐만 아니라 이미지까지 함께 학습한 모델)을 활용한 서비스를 사용하면서 "해줘." 하면 다 해주는 도구라고 생각했었다. 파이썬으로 시작해 기계가 학습하는 과정인 머신러닝을 배우고 그리고 인공신경망을 기반으로 더 많이 공부하고 추론하는 딥러닝까지 내용이 점점 뾰족해지면서 '지금 우리가 쓰고 있는 서비스는 어떤 것을 공부해서 만들어졌을까?'라는 생각이 들기 시작했다.

그래서 딥러닝이란?
딥러닝(Deep Learning)
쉽게 말해서 말 그대로 기계가 사람처럼 깊게 학습하고, 스스로 생각해보게 만든 구조다. 이것을 가능할 수 있게 만드는 게 바로 인공 신경망(ANN, Artificial Neural Network)이고, 이 구조가 바로 사람의 뇌 속 신경 구조(뉴런 규조)에서 아이디어를 가져온 것이다. 그렇다면 왜 딥러닝까지 필요하게 된 것일까?
머신러닝의 경우, 사람이 직접 데이터에는 어떤 특징(feature, x값, 칼럼)을 정해줘야 한다. 예로 지난달 머신러닝 프로젝트인 웹툰 흥행 예측 모델을 만들 때를 참고하자면, 데이터의 특징으로는 좋아요 수, 댓글 수가 몇 개 이렇게 있어.라는 것을 알려주고 그래서 관심 순위가 이렇게 되어 있네. 를 기계가 학습하고 그렇다면 다른 데이터에는 좋아요 수, 댓글 수가 몇 개 있으니깐 이게 흥행할 확률이 높겠네? 이런 식으로 판단하게 하는 구조였다.
이런 구조는 예측 가능한 범위 안에서는 문제가 없었다. 그런데 지금처럼 다루는 데이터가 글자 수만 많은 게 아니라, 이미지, 영상, 음성처럼 복잡한 콘텐츠까지 넓어지면서 단순히 사람이 “이게 중요할 것 같아”라고 특징을 고르기엔 데이터의 양과 특징이 너무 많아졌기에 머신러닝만으로 설명할 수가 없졌다.
1+1=2 와 같은 선형적으로 설명할 수 있는 문제는 머신러닝으로 충분했지만, 1+1=창문(죄송)과 같은 비선형적이고 뭔가 설명하기가 어려운 문제를 다루기 위해서 기계가 스스로 중요한 특징을 찾아내고, 추론하게 하는 딥러닝이 필요하게 된 것이다. 강사님께서 말씀으로 "인공지능의 목표는 사람이 최대한 손을 쓰지 않게 하는 것이다. 그래서 기계 스스로 무언갈 하게 하는 것이다."라고 설명했는데 이 이야기가 지금 인공지능이 발전해 나간다.라고 생각하면 될 것 같다.
그래서 딥러닝 어떻게 작동하는 건데?
딥러닝 구조가 사람의 신경망 구조에서 가져온 것이라고 했는데 나는 계산할 수 있는 작은 단위의 계산기가(뉴런 또는 노드)가 여러 개 층 쌓아있고 서로 연결되어 있는 구조라고 이해했다.
예를 들면, 손에 뭔가 자극(입력 값)을 받았을 때 그 자극이 신경을 통해서 뇌에 전달되고 뇌에서는 뉴런끼리 서로 신호를 주고 받으면서 이것은 과연 어떤 자극일까? 하고 판단(이게 은닉층에서 계산하고 판단하는 과정)을 한다. 그 후에 어라? 나 종이에 손이 베었네? 하고 결론(출력 값)을 내리는 게 된다.
딥러닝도 마찬가지다. 사람이 데이터를 입력하면 여러 층을 거쳐서 계산하고(=깊게 학습!)하고 마지막에 결과를 예측하는 구조이다. 이때 사람마다 자극을 받아들이는 방식이 다르듯이, 무엇을 중요하게 볼지(가중치), 어떤 기준과 방식으로 판단할지(활성화 함수) 그리고 내가 생각한 결과가 틀렸다면 다시 검토해 보는 과정(역전파)을 가지는데 딥러닝의 계산 방식도 동일하다.
그러면 그 안에서는 무슨 일이 일어날까?
딥러닝 안에는 작은 계산기 같은 애들이 엄청 많이 있다고 위에서 이야기했는데, 이 계산기들 (노드)은 각자 받은 정보를 바탕으로 '이건 중요해’ 또는 ‘이건 별로 안 중요해’ 같은 판단을 한다. 이걸 결정하는 게 바로 가중치(weight)인데 쉽게 말하면, 입력 값이 얼마나 중요한지 정해주는 숫자다. 이 가중치는 노드마다 연결된 선이라고 생각하면 쉬운데, 입력 값에 이 선(가중치)을 곱해서 계산한다는 개념이다. 그리고 이렇게 계산한 후에 이 내용을 살짝 첨가해 주는 정보를 더해주는 숫자가 있는데 그게 바로 편향(bias)이다.
이렇게 해서 다음 단계로 넘어가기 전에 이 계산한 결과가 정말 쓸만한 정보인가? 하고 체크하는 과정이 있는데 여기서 나오는 게 활성화 함수이다. 쉽게 나온 값이 너무 작거나 애매하면 이건 의미 없네? 값이 확실하면 다음 층으로 가서 더 발전시키렴. 하는 과정이다. 여기서 나오는 검증하는 함수 종류(계산법)에 ReRU, 시그모이드, 소프트 맥스 같은 것이 있다. 솔직히 이건 나도 완벽하게 이해하진 못했다. 그리고 사실 이 활성화 함수 계산에 대해서는 이미 많은 모델 안에 포함된 상태이기에 아 중간에 검증하는 계산 과정이 있다.라고 이해해도 충분하다고 생각했다.
그럼 어떻게 사용하게 되는 건데?
대표적으로 이제 딥러닝 모델인 이미지 분류를 가지고 이해해 보자.
"사람과 고양이가 있고 이 중에서 고양이를 찾고 싶어."라는 질문을 하게 된다. 딥러닝에서는 고양이라는 것(기계는 고양이를 모르니깐)의 특징 중 하나로 '뾰족한 귀'를 가지고 있구나. 하는 특징을 찾아서 학습해서 '아 이건 고양이만의 뚜렷한 특징이니깐 좀 더 큰 값을 곱해줘야겠다.' 하는 가중치를 준다.
반면에 앞 발가락 5개, 사람 손가락 5개 이 5개는 유사한 특징이라 '그건 큰 특징은 아니니깐 작은 값을 곱해주자.'라는 식으로 판단하는 것이다. 그리고 마지막엔, '이 뾰족한 귀라는 특징이 고양이라고 하는 데이터에만 있는 것이 맞아?'라고 확인하고 '뾰족한 귀는 고양이 데이터에만 있어.'와 같이 판단하고 이건 중요한 값이니 다음 층으로 넘겨주는 것이다.
순서대로 정리하자면, 딥러닝의 흐름을 아래처럼 설명할 수 있다.
- 데이터가 들어온다
→ 예를 들어, "이건 고양이 사진이야!"라는 입력값이 들어옴 - 각 뉴런에서 입력값에 '가중치'를 곱해서 중요도를 판단한다
→ 이건 중요한 정보야? 덜 중요한 정보야? - 계산한 값들을 다 더하고, '바이어스'를 더해 살짝 조정한다
→ 기준점을 살짝 움직여서 더 유연하게 만들기 - '활성화 함수'를 통과하면서 다음 단계로 넘길지 말지 결정한다
→ 신호가 충분히 강하면 다음 층으로 넘어감 - 다음 층에서도 같은 방식으로 계산을 반복한다
→ 이렇게 층을 하나하나 거치며 점점 더 복잡한 판단을 하게 됨 - 최종 결과를 출력한다
→ 예: “이건 고양이야!”라고 판단함 - 결과가 틀렸다면, 실제 정답과 비교해서 오차를 계산한다
- 그 오차를 줄이기 위해 가중치를 다시 조정한다 (역전파)
→ 아까 계산했던 값들을 되짚어 올라가며 고치는 과정 - 이 과정을 반복하면서 점점 더 똑똑해진다
다음 시간에는 딥러닝으로 어떤 것을 할 수 있는지 그래서 어떤 실습을 했는지에 대한 이야기를 정리해 보려고 한다.
파이팅💪
'원티드 포텐업 부트캠프 기록' 카테고리의 다른 글
[비전공자의 AI 부트캠프 일지 #10] 딥러닝 프로젝트 회고 (1) | 2025.04.13 |
---|---|
[비전공자의 AI 부트캠프 일지 #9] 딥러닝 실습하기 (0) | 2025.04.06 |
[비전공자의 AI 부트캠프 일지 #7] 머신러닝 프로젝트 회고 (0) | 2025.03.23 |
[비전공자의 AI 부트캠프 일지 #6] 머신러닝 기초 정리_원티드 포텐업 부트캠프 (0) | 2025.03.02 |
[비전공자의 AI 부트캠프 일지 #5] part2 .ML(머신러닝) 시작_원티드 포텐업 부트캠프 (2) | 2025.02.23 |