딥러닝 기초 : 텐서부터 최신 모델 정리

컬럼월드·2025년 12월 8일
post-thumbnail

이번 포스팅에서는 딥러닝과 그중에서 파이토치(PyTorch)를 활용한 기초 과정과 주요 모델들에 대해 살펴보겠습니다. 이미지 인식 분야(ILSVRC)의 발전사를 따라가다 보면 딥러닝 네트워크가 어떻게 깊어지는지 볼 수 있습니다.

이미지 인식 분야(ILSVRC)의 발전사

  1. AlexNet (2012): 딥러닝의 빅뱅, 전설의 시작

"기존 강자들을 제치고 압도적인 1위 달성"
8개의 레이어만으로 당시 16.4%라는 놀라운 오차율을 기록하며 딥러닝의 부흥을 알린 상징적인 모델입니다.

  1. VGGNet (2014): "깊을수록 좋다" 심플함의 미학

"작은 3x3 필터로 쌓아 올린 견고한 성"
모델의 깊이(Depth)가 성능의 핵심임을 증명했습니다. 3x3 필터를 반복 사용하는 단순한 구조로 16~19층까지 깊이를 늘려, 지금도 널리 사랑받는 스테디셀러입니다.

  1. GoogLeNet (Inception, 2014): 효율성의 극치, 인셉션의 마법

"옆으로 넓히고 위로 깊게, 가성비 끝판왕"
인셉션 모듈과 1x1 컨볼루션을 활용해 연산량은 확 줄이고 깊이는 22층까지 늘렸습니다. 파라미터 다이어트에 성공한 똑똑한 모델입니다.

  1. ResNet (2015): 마의 152층을 뚫다, 인간을 뛰어넘은 혁명

"지름길(Skip Connection)을 내어 한계를 돌파하다"
층이 깊어지면 학습이 안 되던 고질병을 '잔차 학습'으로 해결했습니다. 무려 152층을 쌓아 올리며 오차율 3.57%를 기록, 드디어 사람의 인식 능력을 뛰어넘었습니다.

  1. DenseNet (2017): 모든 층을 연결하라, 빽빽한 연결의 힘

"정보의 흐름을 꽉 잡은 그물망 구조"
ResNet을 발전시켜 모든 레이어가 서로 정보를 주고받도록 설계했습니다. 정보의 흐름을 극대화하여 파라미터 효율을 극한으로 끌어올린 모델입니다.

이러한 모델들의 발전 과정을 이해하면, 파이토치로 구현할 기초 신경망이 어떤 원리로 동작하는지 더 깊이 이해할 수 있습니다.

딥러닝에 대해서 알기 전에, 용어 정리부터 하겠습니다.

- 딥러닝 vs 머신러닝의 차이점

딥러닝(Definition of Deep Learning)이란?

"머신러닝의 부분집합이자, 인간의 뇌를 모방한 심층 신경망"

딥러닝(Deep Learning)은 머신러닝(Machine Learning)의 하위 개념입니다. 인공신경망(Artificial Neural Network)을 기초로 하여, 여러 비선형 변환 기법의 조합을 통해 높은 수준의 추상화(abstractions)를 시도하는 기계 학습 알고리즘의 집합입니다.

여기서 딥(Deep)이라는 단어는 신경망의 층(Layer)이 깊다는 것을 의미합니다. 입력층(Input)과 출력층(Output) 사이에 있는 은닉층(Hidden Layer)을 여러 겹 쌓아 올려, 데이터에 내재된 복잡한 패턴과 특징을 컴퓨터가 스스로 학습하게 만드는 것이 핵심입니다.

딥러닝과 머신러닝의 차이
: 누가 특징(Feature)을 추출하는가?에 있습니다.

① 머신러닝 (Machine Learning)

  • 특징 추출 (Feature Extraction) : 사람이 개입합니다. 데이터를 컴퓨터가 이해할 수 있도록 사람이 직접 가공하고 특징을 정의해(Hand-crafted) 주어야 합니다.

  • 작동 방식 : 사람이 정제한 데이터를 알고리즘에 입력하면, 알고리즘이 이를 바탕으로 학습합니다.

  • 예시 : 스팸 메일 필터 (특정 단어 빈도수 등을 사람이 지정)

② 딥러닝 (Deep Learning)

  • 특징 추출 (Feature Extraction) : 기계가 스스로 합니다. 데이터(Raw Data)를 그대로 넣어주면, 네트워크가 학습 과정에서 스스로 중요한 특징을 찾아냅니다. (End-to-End Learning)

  • 작동 방식 : 데이터의 양이 많을수록 성능이 비약적으로 향상되지만, 그만큼 고성능 GPU와 긴 학습 시간이 필요합니다.

  • 예시 : 알파고, 자율주행, 이미지 인식 (고양이 사진을 주면 귀, 털, 눈의 특징을 스스로 파악)

  1. 한눈에 보는 비교 요약
비교 항목머신러닝 (Machine Learning)딥러닝 (Deep Learning)
데이터 양적은 양의 데이터로도 어느 정도 성능 발휘방대한 양의 데이터(Big Data)가 필수적
하드웨어일반 CPU로도 학습 가능고성능 GPU(병렬 연산)가 필수적
특징 추출사람이 직접 선택 (Manual)알고리즘이 자동 추출 (Automatic)
해석 가능성결과에 대한 원인 분석이 비교적 쉬움기내부가 복잡하여 해석이 어려움 (Black Box)
학습 시간비교적 짧음매우 김 (몇 시간 ~ 며칠)

이렇게만 보면 머신러닝과 딥러닝은 조금 차이가 있습니다.
머신러닝은 사람이 직접 특징을 찾아줘야 됩니다. 데이터가 복잡해질수록 사람이 찾을 수 있는 특징에는 한계가 생기는 겁니다. 그래서 이 한계점을 딥러닝이 해결을 해주는 역할을 합니다.

왜 우리는 딥러닝을 배워야 할까요?

  1. 데이터가 폭발하는 시대 (Big Data) 데이터의 양이 늘어날수록 전통적인 머신러닝 모델의 성능은 정체되지만, 딥러닝 모델의 성능은 계속해서 향상됩니다.

  2. 하드웨어의 발전 (GPU) 과거에는 연산량이 너무 많아 불가능했던 심층 신경망 학습이, 강력한 GPU의 등장으로 가능해졌습니다.

  3. 압도적인 성과 (SOTA) 이미지 인식, 자연어 처리(ChatGPT), 음성 인식 등 복잡한 문제에서 딥러닝은 인간의 수준을 뛰어넘는 성능(State Of The Art)을 보여주고 있습니다.

결국, 데이터가 넘쳐나고 컴퓨터가 똑똑해진 지금, 가장 강력한 도구인 딥러닝을 배우는 것은 필수라고 할 수 있습니다.

그렇다면 이 강력한 딥러닝을 구현하기 위한 도구, 파이토치(PyTorch)의 기초부터 시작해보도록 하겠습니다.

핵심 키워드는 다음과 같이 정리할 수 있습니다.
1. Tensor (텐서): 파이토치의 핵심 자료형, 텐서의 생성과 연산법을 익힙니다.
2. Autograd (자동 미분): 딥러닝 학습의 필수 과정인 역전파를 알아서 계산해주는 자동 미분 기능을 실습합니다.
3.Neural Networks (신경망): torch.nn 패키지를 활용해 레고 블록을 쌓듯 나만의 신경망 모델을 설계합니다.
4.Training Classifier (분류기 학습): CIFAR-10 데이터셋으로 CNN 모델을 직접 학습시켜 실전 이미지 분류기를 구현합니다.

1-1. Tensor (텐서)

먼저 텐서를 생성하고, 초기화를 해줘야합니다.

1-2. Operations (텐서 연산)

텐서 간의 덧셈 연산은 여러 가지 문법을 지원합니다. 상황에 맞게 편한 방식을 사용하면 됩니다.

인덱싱(Indexing)이나 크기 변경(Resizing)도 가능합니다.

1-3. NumPy와의 변환 (Bridge)

파이토치 텐서와 넘파이 배열은 메모리를 공유하기 때문에 변환이 매우 쉽고 빠릅니다.

이와 반대로 넘파이에서 텐서로 변환하는 것도 가능합니다.

2. Autograd (자동 미분)

딥러닝 학습의 핵심은 역전파(Backpropagation)입니다. 파이토치의 autograd 패키지는 텐서의 모든 연산에 대해 자동으로 미분을 계산해줍니다.

requires_grad=True로 설정하면, 해당 텐서에서 이루어진 모든 연산을 추적합니다.

![](https://velog.velcdn.com/images/my_yeahjinly_log/post/5e5421fe-d1f4-4db1-bb4b-33d41442ad42/image.png

이 과정을 통해 우리가 직접 복잡한 미분 공식을 풀지 않아도, 파이토치가 알아서 기울기를 계산해 줍니다.

3.Neural Networks (신경망)

이제 torch.nn 패키지를 사용하여 실제 신경망을 정의하고 학습시켜 보겠습니다.

  1. 네트워크 정의 (Define the Network)
    nn.Module을 상속받아 클래스 형태로 모델을 정의합니다.

![](https://velog.velcdn.com/images/my_yeahjinly_log/post/b9584968-6a94-4e36-93d0-e9e918243a80/image.png

  1. 손실 함수와 옵티마이저 (Loss & Optimizer)
    모델이 얼마나 틀렸는지 계산할 손실 함수와, 가중치를 업데이트할 옵티마이저를 정의합니다.

  1. 학습 루프 (Training Loop)
    데이터를 반복해서 모델에 넣고, 오차를 계산하고, 가중치를 수정하는 실제 학습 과정입니다.

오늘 포스팅에서는 딥러닝의 역사적인 주요 모델들(AlexNet ~ DenseNet)부터 시작해 딥러닝과 머신러닝의 차이, 그리고 파이토치(PyTorch)를 이용한 실제 구현 기초까지 알아보았습니다.

모델의 진화: 딥러닝 모델은 더 깊게(Deep), 더 효율적으로 발전해 왔습니다.

파이토치의 핵심:

Tensor: GPU 연산이 가능한 기본 데이터 구조

Autograd: 복잡한 미분을 알아서 해주는 자동 미분 시스템

nn.Module: 레고 블록처럼 쌓아 올리는 신경망 구조

이 기초 과정은 앞으로 우리가 만들게 될 복잡한 AI 모델의 중요한 내용이 되지 않을까 생각합니다.
그래서 다음에 기회가 된다면 딥러닝 관련한 내용을 이야기해보도록 하겠습니다.

평일에 어김없이 노트북을 보고 있는데 바깥 노을진 풍경이 너무 이뻐서 창문 열고 찍어보았습니다!!
사진 색 보정을 했는데 제 눈으로 본 색감이 나오진 않녜여,, 내 손이 덩-손인 탓인가? 🕴🏻🌿
요즘 5시가 좀 지나면 해가 지면서 어둑어둑해지면서 그와 동시에 바깥에서 한기가 안으로 들어와 너무 추워집니다... 이불속으로 뛰쳐들어가서 귤을 까먹고 쉬고 싶은 마음이 듭니다,,
얘기하다 보니까 같이 수업듣는 분들 중에 저랑 나이가 같은 칭구 한명이 있는데 그 친구가 귤 껍질로 예술 작품을 만든게 생각나네여
애니알못이라 무슨 캐릭터인지는 지금도 모르는데 약간 이마에,,,,,, 톱(??)같은거 꼽고 다니던데 훌쩍 💦 아직 못(안)본 애니가 수두룩 빽빽하다.. 나약하다 반성해야듸

profile
안녕하세요, 코딩과 잡다한 얘기도 좋아해요.

14개의 댓글

comment-user-thumbnail
2025년 12월 9일

예진센세 드디어 새 블로그 올렷다 풍악을 울려라~ 심지어 내용도 너무 조타~~❤️
ㅋㅋㅋㅋ애니 지금부터 시작해봅시다... 주술회전, 체인소맨,,,, 볼게 을매나 많은데 ><

1개의 답글
comment-user-thumbnail
2025년 12월 10일

귤치타 퍼가요~♡

1개의 답글
comment-user-thumbnail
2025년 12월 12일

알찬 글! 화이팅!!

1개의 답글
comment-user-thumbnail
2025년 12월 12일

오오오 VGG 2등할때 구글넷이 1등 했군여!!! 수업때 궁금했던 비밀이 풀렸다아아아~~ >ㅁ< /

1개의 답글
comment-user-thumbnail
2025년 12월 12일

장송의 프리렌도 재밌어요 ㅋㅋ 조금 잔인해도 되면 빈란드사가도 1기까지는?

2개의 답글