[kakao x goorm] 생성 AI 응용 서비스 개발자 양성 과정/회고록 58

[kakao x goorm] 전이학습, 설명 가능한 CNN, 그래프 기반 CNN

오늘은 CNN을 보다 실전적으로 활용하기 위한 세 가지 주제를 집중적으로 학습했다.먼저, 기존에 학습된 모델을 재활용하는 전이학습(Transfer Learning) 의 원리를 이해하고, 이어서 딥러닝 모델의 예측 근거를 시각화하는 설명 가능한 CNN 기법을 살펴보았다. 마지막으로는 CNN의 한계를 넘어 비정형 데이터까지 처리할 수 있는 그래프 기반 CNN(GCN)의 개념을 처음 접하게 되었다.각 개념 모두 딥러닝 실무에서 매우 중요한 도구이기 때문에, 단순 개념 암기를 넘어서 구체적인 사례와 활용 흐름을 중심으로 정리해보았다.전이학습 (Transfer Learning)전이학습은 말 그대로 이미 학습된 지식을 새로운 문제에 전이하는 것을 의미한다. 딥러닝에서는 특히 이미지 처리 분야에서 널리 사용된다. 왜..

[kakao x goorm] 합성곱 신경망(CNN)의 구조와 구현 맛보기

오늘은 생성 AI 수업에서 본격적으로 합성곱 신경망(CNN: Convolutional Neural Network)의 구조와 구현 방식에 대해 학습했다. CNN은 이미지 분류나 물체 인식처럼 시각 정보를 처리하는 데 매우 특화된 딥러닝 모델로, 딥러닝 분야에서 빠질 수 없는 핵심 개념 중 하나다.이론적으로는 CNN의 계층 구조와 각 층의 역할을 상세히 이해했고, 실습에서는 fashion_mnist 데이터셋을 활용하여 직접 CNN 모델을 구현하고 성능을 확인해보는 경험까지 해볼 수 있었다.합성곱 신경망이란?합성곱 신경망은 이미지나 영상처럼 공간 구조가 중요한 데이터를 처리하는 데 특화된 신경망 구조다. 기존의 완전연결층 기반 신경망보다 파라미터 수가 적고, 지역적 특징(local feature)을 잘 포착한..

[kakao x goorm] PyTorch 핵심 문법 정리

딥러닝을 공부하다 보면 자연스럽게 접하게 되는 프레임워크가 PyTorch다. 나 역시 처음에는 “TensorFlow와 무엇이 다를까?”라는 궁금증에서 출발했지만, 실무 프로젝트와 수업을 병행하면서 PyTorch의 구조, 철학, 그리고 내부 작동 방식에 대해 보다 체계적으로 이해할 수 있었다. 단순히 “파이썬으로 딥러닝을 할 수 있는 도구”라는 인상에 머무르지 않고, 실제로는 정교함과 유연성, 그리고 계산 성능까지 고려된 프레임워크라는 점을 실감하게 됐다.이번 포스팅에서는 PyTorch의 핵심 문법을 실무 관점에서 정리했다. 특히 모델 파라미터, 학습/평가 모드 등 실전에서 자주 혼동되는 부분을 중심으로 경험을 바탕으로 설명한다.텐서(Tensor)와 어레이(Array) 다루기PyTorch의 모든 연산은 텐..

[kakao x goorm] 실습 환경 설정과 파이토치 기초

딥러닝을 공부하면서 가장 자주 듣게 되는 프레임워크 중 하나가 바로 PyTorch다. 이전까지는 텐서플로(TensorFlow)와의 비교 정도로만 파이토치를 접했지만, 이번 수업을 통해 그 구조와 철학, 그리고 내부 작동 원리까지 본격적으로 파악할 수 있었다. 단순히 "파이썬으로 딥러닝을 할 수 있는 도구"라고만 생각했던 PyTorch는 사실 훨씬 정교하고, 유연하며, 계산 성능에 최적화된 구조를 갖추고 있었다.이번 장에서는 PyTorch의 핵심 구성 요소인 GPU 지원, 텐서(Tensor), Define-by-Run 방식의 동적 신경망, 그리고 메모리 저장 방식까지 다루면서, 단순한 코드 학습을 넘어서 딥러닝의 연산 구조와 효율성에 대한 이해를 넓힐 수 있었다. 무엇보다 PyTorch가 왜 연구자들과 실..

[kakao x goorm] 계산 그래프와 역전파, 딥러닝의 수학적 뼈대를 이해하다

오늘은 딥러닝 모델의 학습 원리를 수학적으로 구현하는 핵심 메커니즘, 즉 계산 그래프(Computational Graph)와 역전파(Backpropagation)의 구조와 작동 원리를 집중적으로 학습했다. 머신러닝을 수학적으로 해석할 때 가장 중요한 기둥 중 하나가 바로 미분과 그 전파 방식인데, 이를 체계적으로 구현하는 것이 계산 그래프이며, 그 위에서의 기울기 전파가 역전파로 이어진다.계산 그래프란 무엇인가?계산 그래프는 하나의 계산 과정을 노드(Node)와 엣지(Edge)로 구성된 그래프로 나타내는 구조다. 이 그래프는 데이터가 어떻게 흐르고, 어떤 연산이 어떤 순서로 이루어지는지를 명확히 시각화할 수 있는 장점이 있다. 예를 들어, 다음과 같은 간단한 사과 구매 예시를 살펴보자. 사과 가격: 10..

[kakao x goorm] 경사하강법과 옵티마이저, 딥러닝 학습의 시작점

오늘은 딥러닝 학습 과정에서 가장 기본적이면서도 중요한 원리인 경사하강법(Gradient Descent)과, 이를 기반으로 다양한 방식으로 발전된 옵티마이저(Optimizer) 기법들에 대해 학습하고 정리했다.수식의 구조를 단순히 암기하는 것이 아니라, 왜 그런 수식이 필요한지, 학습률이 어떤 영향을 주는지, 그리고 신경망 학습에서 실제로 파라미터가 어떤 흐름으로 변화하는지를 전체 맥락 속에서 이해할 수 있었던 시간이었다.손실 함수를 줄이는 과정, 경사하강법머신러닝 모델이 학습을 통해 이루고자 하는 목표는 단 하나다.바로 손실 함수(loss function)의 값을 가능한 작게 만드는 가중치(parameter)를 찾는 것이다.경사하강법은 이 목표를 달성하기 위한 가장 기본적인 알고리즘이다. 핵심은 아래와..

[kakao x goorm] 2층 은닉 신경망 구현부터 소프트맥스 안정화까지

오늘은 딥러닝 신경망 구조 중에서도 기본이 되는 "은닉층이 2개인 심층 신경망"을 넘파이를 이용해 직접 구현해보았다. 간단한 연산 과정을 통해 입력부터 출력까지 데이터가 어떻게 변환되는지 체계적으로 학습했으며, 특히 소프트맥스 함수와 오버플로우 문제 해결까지 함께 다루어 실제 모델링에 가까운 구조를 연습했다.신경망 구조 개요이번에 구현한 신경망은 다음과 같은 구성이다입력층(Input layer) → 1층 은닉층(Hidden Layer 1) → 2층 은닉층(Hidden Layer 2) → 출력층(Output Layer)표기법은 다음과 같다X: 입력 데이터 (1차원 배열)W1: 입력층 → 1층 은닉층 가중치 (2 × 3 행렬)W2: 1층 은닉층 → 2층 은닉층 가중치W3: 2층 은닉층 → 출력층 가중치각 층..

[kakao x goorm] 퍼셉트론에서 신경망으로 넘어가기

오늘은 퍼셉트론이 어떻게 신경망으로 확장되었는지, 그리고 그 과정에서 등장한 다양한 활성화 함수에 대해 정리했다. 특히, 퍼셉트론이 갖는 한계와 신경망이 이를 어떻게 극복했는지를 이해하는 데 중점을 두었다.퍼셉트론의 장단점퍼셉트론은 기본적으로 간단한 논리 연산을 수행할 수 있는 모델이다.하지만 복잡한 연산이나 다양한 패턴을 표현하는 데에는 한계가 존재했다.장점 : 복잡한 함수의 표현이 가능하며, 이론적으로 컴퓨터가 수행하는 처리까지 가능하다.단점 : 가중치를 사람이 일일이 설정해야 해서 수동 작업이 필요했다.결국 퍼셉트론은 강력한 가능성을 지녔지만, 학습을 통한 자동화가 어렵다는 문제를 안고 있었다.신경망의 등장신경망은 퍼셉트론의 한계를 극복하기 위해 등장했다.가장 큰 차이는 가중치 매개변수를 데이터로부..

[kakao x goorm] DBSCAN과 딥러닝의 시작, 퍼셉트론 구조까지

오늘은 머신러닝의 주요 분야 중 하나인 클러스터링 알고리즘과, 딥러닝의 이론적 기초인 퍼셉트론에 대해 함께 학습했다. 클러스터링에서는 밀도 기반 방식의 대표 모델인 DBSCAN을 통해 군집화가 어떻게 이뤄지는지 파악했고, 딥러닝 파트에서는 퍼셉트론이 어떻게 정보를 처리하고 출력하는지 단계별로 살펴보았다. 특히 퍼셉트론의 한계를 어떻게 극복하며 딥러닝으로 확장되는지를 XOR 문제를 통해 확인할 수 있었다.DBSCAN의 핵심 개념DBSCAN은 밀도(density)를 기준으로 클러스터를 형성하는 알고리즘이다. 같은 밀도의 영역에 속하는 점들끼리 군집으로 묶으며, 클러스터의 외곽이나 외부에 있는 점들을 따로 구분할 수 있다는 점에서 실전에서도 자주 사용된다.Core Point (핵심 포인트)반경 ε 내에 min..

[kakao x goorm] 앙상블 기법과 군집 분석의 정수

오늘은 머신러닝의 핵심 기법 중 하나인 앙상블 기법과 군집 분석(Clustering)에 대해 집중적으로 학습했다. 각각의 기법이 어떻게 작동하고, 어떤 문제에 어떻게 적용할 수 있는지를 실제 사례와 함께 정리해보았다.Bagging (Bootstrap Aggregating)Bagging은 이름 그대로 두 가지 과정을 결합한다:Bootstrap: 데이터를 복원 추출 방식으로 여러 번 샘플링하여, 비슷하지만 서로 다른 데이터셋을 여러 개 만든다. 예를 들어, 100개의 데이터를 100번 복원 추출하여 10개의 다른 학습 데이터를 구성할 수 있다. 이 과정에서 동일한 샘플이 한 데이터셋에 여러 번 포함될 수 있다.Aggregating: 이렇게 만들어진 각각의 모델이 예측한 값을 통합한다. 회귀 문제에서는 예측값..