<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>d.yeon</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 24 Jul 2024 09:17:19 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>d.yeon</title>
            <url>https://velog.velcdn.com/images/d_yeon819/profile/ed09bb22-3310-4801-b06e-390142bee091/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. d.yeon. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/d_yeon819" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[『Machine Learning 개론』 Part 3. Recent Progress of Large Language Models]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EMachine-Learning-%EA%B0%9C%EB%A1%A0%E3%80%8F-Part-3.-Recent-Progress-of-Large-Language-Models</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EMachine-Learning-%EA%B0%9C%EB%A1%A0%E3%80%8F-Part-3.-Recent-Progress-of-Large-Language-Models</guid>
            <pubDate>Wed, 24 Jul 2024 09:17:19 GMT</pubDate>
            <description><![CDATA[<h2 id="개요">개요</h2>
<p>이번 3강에서는 현재 가장 많은 관심을 받고 있는 초거대 언어모델에 대해 다룰 예정입니다. 특히, 오픈AI의 GPT 시리즈와 그 이후의 다양한 라지 랭귀지 모델(LLM)들에 대해 살펴보고, 이들 모델이 인공지능 연구와 개발에 어떤 영향을 미치고 있는지 논의할 것입니다.</p>
<h2 id="gpt-3와-그-이후">GPT-3와 그 이후</h2>
<h3 id="gpt-3">GPT-3</h3>
<p>GPT-3 (Generative Pre-trained Transformer 3)는 오픈AI에서 개발한 모델로, 1,750억 개의 파라미터를 가진 초거대 언어모델입니다. GPT-3는 다양한 태스크에 대해 놀라운 성능을 보이며, 번역, 요약, 코딩 등 다양한 작업을 수행할 수 있습니다. GPT-3의 등장은 기존의 특정 태스크에만 집중된 인공지능 모델과 달리, 범용 인공지능의 가능성을 열었습니다.</p>
<h3 id="인스트럭트-gpt-gpt-35">인스트럭트 GPT (GPT-3.5)</h3>
<p>GPT-3 이후, 오픈AI는 인스트럭트 GPT라는 모델을 개발했습니다. 이 모델은 사용자의 지시를 더욱 잘 이해하고 따를 수 있도록 강화 학습(특히 RLHF, Reinforcement Learning from Human Feedback)을 통해 학습되었습니다. 인스트럭트 GPT는 GPT-3의 언어 이해 능력을 바탕으로, 사용자가 제공하는 지시를 유용하고 안전하게 수행할 수 있도록 설계되었습니다.</p>
<h3 id="chatgpt">ChatGPT</h3>
<p>ChatGPT는 인스트럭트 GPT에 대화형 사용자 인터페이스를 결합한 모델입니다. 2022년 11월에 출시되었으며, 일반 사용자들도 쉽게 접근할 수 있게 되었습니다. ChatGPT는 출시 두 달 만에 월간 활성 사용자 수(MAU) 1억 명을 돌파하며, 매우 빠른 성장세를 보였습니다.</p>
<h3 id="gpt-4">GPT-4</h3>
<p>GPT-4는 두 가지 주요 특징을 강조합니다: 멀티모달 처리와 인간 시험에서의 뛰어난 성능입니다. 멀티모달 처리란 텍스트뿐만 아니라 이미지를 함께 이해하고 처리할 수 있는 능력을 의미합니다. 또한 GPT-4는 변호사 시험, 대학 입학 시험 등에서 상위 20%의 성적을 기록할 정도로 높은 성능을 보입니다.</p>
<h2 id="다른-초거대-언어모델들">다른 초거대 언어모델들</h2>
<h3 id="anthropic의-claude">Anthropic의 Claude</h3>
<p>Claude는 2021년에 오픈AI를 떠난 연구진이 설립한 Anthropic에서 개발한 모델입니다. Claude는 GPT와 유사한 성능을 보이며, 지속적으로 개선되고 있습니다.</p>
<h3 id="구글의-bard">구글의 Bard</h3>
<p>구글은 GPT에 대응하기 위해 Bard라는 모델을 개발했습니다. Bard는 구글 검색과 연동되어 사용자에게 더욱 편리한 검색 경험을 제공합니다. 구글의 팜(PaLM) 모델을 기반으로 하며, 5천억 개의 파라미터를 가진 대규모 모델입니다.</p>
<h3 id="메타의-llama">메타의 LLaMA</h3>
<p>메타는 오픈소스 전략을 통해 LLaMA 모델을 공개했습니다. 이 모델은 다양한 사이즈로 제공되며, 학계와 산업계에서 널리 활용되고 있습니다. 메타는 이를 통해 많은 사용자 기반을 확보하고, 다양한 응용 분야에서 사용될 수 있도록 하고 있습니다.</p>
<h2 id="셀프-인스트럭션-튜닝">셀프 인스트럭션 튜닝</h2>
<p>스탠포드 대학 연구진은 메타의 LLaMA 모델을 가져와 셀프 인스트럭션 튜닝을 통해 성능을 향상시켰습니다. 이를 통해 GPT와 유사한 성능을 저렴하게 얻을 수 있으며, 다양한 응용 분야에 활용할 수 있습니다.</p>
<h3 id="vicuna">Vicuna</h3>
<p>Vicuna는 LLaMA 모델을 기반으로 개발된 모델입니다. ShareGPT.com에서 수집한 50만 개의 데이터셋을 활용해 학습되었으며, 약 300달러의 비용으로 개발되었습니다. Vicuna는 높은 성능을 저렴한 비용으로 제공하는 예시로 주목받고 있습니다.</p>
<h2 id="결론">결론</h2>
<p>초거대 언어모델의 발전은 데이터 중심의 인공지능을 더욱 강화하고 있습니다. 오픈AI의 GPT 시리즈뿐만 아니라, 구글, 메타, Anthropic 등 다양한 회사들이 경쟁하며 이 분야를 발전시키고 있습니다. 초거대 언어모델은 앞으로도 빠르게 발전할 것이며, 연구자와 개발자들에게 많은 기회를 제공할 것입니다.</p>
<p>지속적인 관심과 연구를 통해 초거대 언어모델의 발전과 함께할 수 있기를 바랍니다. </p>
<p>이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『Machine Learning 개론』 Part 2. Bias and Variance]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EMachine-Learning-%EA%B0%9C%EB%A1%A0%E3%80%8F-Part-2.-Bias-and-Variance</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EMachine-Learning-%EA%B0%9C%EB%A1%A0%E3%80%8F-Part-2.-Bias-and-Variance</guid>
            <pubDate>Wed, 24 Jul 2024 03:59:17 GMT</pubDate>
            <description><![CDATA[<h2 id="개요">개요</h2>
<p>이번 강의에서는 오버피팅과 언더피팅의 개념에 대해 살펴볼 예정입니다. 이 두 개념은 기계학습의 목표인 일반화와 밀접한 관계가 있으며, 바이어스와 배리언스와도 깊게 연관되어 있습니다. 이를 이해하는 것이 적절한 기계학습 모델을 선택하는 데 필수적입니다.</p>
<h2 id="기계학습의-포멀한-정의">기계학습의 포멀한 정의</h2>
<p>기계학습에서 학습 데이터는 주어진 입력(x)과 그에 대응하는 출력(y)의 쌍으로 구성됩니다. 예를 들어, D차원의 벡터 형태의 입력과 이진 분류를 위한 출력(y)이 플러스 1 또는 마이너스 1로 주어질 수 있습니다.</p>
<h3 id="모델-클래스-정의">모델 클래스 정의</h3>
<p>모델 클래스는 학습 데이터에 대한 예측을 수행하기 위한 함수 형태로 정의됩니다. 예를 들어, 선형 모델을 사용할 경우, 모델은 선형 함수로 정의됩니다. 학습을 통해 모델의 파라미터가 결정되며, 이 파라미터는 학습 데이터에 대한 예측 성능을 최적화합니다.</p>
<h3 id="손실-함수-loss-function">손실 함수 (Loss Function)</h3>
<p>손실 함수는 모델의 예측값과 실제값 사이의 차이를 수치적으로 나타내는 함수입니다. 예를 들어, 회귀 문제에서는 예측값과 실제값의 차이의 제곱을 손실로 정의할 수 있고, 분류 문제에서는 예측이 틀린 경우 손실을 1로 정의할 수 있습니다. 학습 과정에서 이 손실을 최소화하는 방향으로 모델 파라미터가 조정됩니다.</p>
<h2 id="일반화의-중요성">일반화의 중요성</h2>
<p>일반화는 모델이 학습 데이터 외의 새로운 데이터에서도 좋은 성능을 보이는 능력입니다. 기계학습의 궁극적인 목표는 학습 데이터에 대한 성능이 아니라, 새로운 데이터에 대한 성능을 높이는 것입니다. 이는 오버피팅과 언더피팅과 관련이 있습니다.</p>
<h3 id="오버피팅과-언더피팅">오버피팅과 언더피팅</h3>
<blockquote>
</blockquote>
<p>•    <strong>오버피팅</strong>: 모델이 학습 데이터에 너무 맞춰져서 새로운 데이터에 대해 성능이 떨어지는 현상입니다. 학습 데이터의 노이즈까지 학습하여 복잡한 모델이 되는 경우입니다.
•    <strong>언더피팅</strong>: 모델이 학습 데이터에 충분히 맞춰지지 않아 성능이 떨어지는 현상입니다. 모델의 복잡도가 너무 낮아 데이터를 잘 설명하지 못하는 경우입니다.</p>
<h2 id="일반화-오류">일반화 오류</h2>
<p>기계학습의 목적은 일반화 오류(Generalization Error)를 최소화하는 것입니다. 이는 모델이 보지 못한 새로운 데이터에 대해 얼마나 잘 예측하는지를 나타내는 지표입니다.</p>
<h3 id="트레이닝-에러와-테스트-에러">트레이닝 에러와 테스트 에러</h3>
<blockquote>
</blockquote>
<p>•    <strong>트레이닝 에러</strong>: 학습 데이터에 대한 오류입니다.
•    <strong>테스트 에러</strong>: 보지 못한 새로운 데이터에 대한 오류입니다.</p>
<p>오버피팅은 트레이닝 에러는 낮지만 테스트 에러는 높은 상황이며, 언더피팅은 트레이닝 에러와 테스트 에러 모두 높은 상황입니다.</p>
<h2 id="bias와-variance">Bias와 Variance</h2>
<p>Bias와 Variance는 모델의 성능을 평가하는 중요한 개념입니다.</p>
<blockquote>
</blockquote>
<p>•    <strong>Bias</strong>: 모델이 실제값과 얼마나 떨어져 있는지를 나타내는 지표입니다. 높은 바이어스는 모델이 단순하여 데이터의 복잡성을 잘 반영하지 못하는 경우입니다.
•    <strong>Variance</strong>: 모델이 얼마나 불안정하게 예측하는지를 나타내는 지표입니다. 높은 배리언스는 모델이 학습 데이터의 노이즈까지 학습하여 새로운 데이터에 대해 성능이 불안정한 경우입니다.</p>
<h3 id="bias-variance-trade-off">Bias-Variance Trade-off</h3>
<p>Bias와 Variance는 서로 트레이드오프 관계에 있습니다. 모델의 복잡도를 높이면 Bias는 낮아지지만 Variance는 높아지고, 반대로 모델의 복잡도를 낮추면 Bias는 높아지지만 Variance는 낮아집니다.</p>
<h3 id="앙상블-러닝">앙상블 러닝</h3>
<p>앙상블 러닝은 여러 개의 모델을 결합하여 바이어스와 배리언스를 모두 낮추는 방법입니다. 이를 통해 보다 안정적이고 성능이 높은 모델을 만들 수 있습니다.</p>
<h2 id="정리">정리</h2>
<p>이번 강의에서는 오버피팅, 언더피팅, 바이어스, 배리언스의 개념과 이들 사이의 관계를 살펴보았습니다. 기계학습의 목표는 일반화 오류를 최소화하는 것이며, 이를 위해 바이어스와 배리언스를 적절히 조절하는 것이 중요합니다. 이를 위해 모델의 복잡도를 조절하고, 필요에 따라 레귤러라이제이션을 사용하는 등의 방법을 사용할 수 있습니다.</p>
<p>이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『Machine Learning 개론』 Part 1. Introduction to Machine Learning]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EMachine-Learning-%EA%B0%9C%EB%A1%A0%E3%80%8F-Part-1.-Introduction-to-Machine-Learning</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EMachine-Learning-%EA%B0%9C%EB%A1%A0%E3%80%8F-Part-1.-Introduction-to-Machine-Learning</guid>
            <pubDate>Wed, 24 Jul 2024 03:38:42 GMT</pubDate>
            <description><![CDATA[<h2 id="기계학습의-정의-및-역사">기계학습의 정의 및 역사</h2>
<h3 id="기계학습의-정의">기계학습의 정의</h3>
<p>기계학습은 인공지능의 한 분야로, 실험적으로 얻은 데이터로부터 점점 개선되는 알고리즘을 설계하고 개발하는 학문입니다. 기계학습의 목표는 데이터로부터 학습하여 성능을 향상시키는 것입니다. 이를 통해 기계학습 시스템은 주어진 작업(T)을 통해 성능 지표(P)를 개선할 수 있습니다.</p>
<blockquote>
</blockquote>
<p>•    <strong>인공지능</strong>: 사람과 같은 지능을 만들기 위한 학문.
•    <strong>기계학습</strong>: 데이터로부터 스스로 개선되는 알고리즘을 다루는 학문.
•    <strong>딥러닝</strong>: 신경망 기반의 기계학습의 한 분야로, 특히 깊은 신경망(Deep Neural Networks)을 사용.</p>
<h3 id="기계학습의-역사">기계학습의 역사</h3>
<blockquote>
</blockquote>
<ol>
<li><strong>허벌트 사이먼 (Herbert Simon)</strong>: 기계학습을 경험을 통해 성능을 높이는 시스템이라고 정의.</li>
<li><strong>Arthur Samuel</strong>: 체스 프로그램을 개발하면서 기계가 직접 프로그래밍 없이 학습할 수 있는 능력을 강조.</li>
<li><strong>탐 미첼 (Tom Mitchell)</strong>: 기계학습을 T(작업), P(성능 지표), E(경험 데이터)로 정의. 이는 작업, 성능 지표, 학습 데이터를 명확히 정의함으로써 기계학습 문제를 설정.</li>
</ol>
<h2 id="기계학습과-전통적-프로그래밍의-비교">기계학습과 전통적 프로그래밍의 비교</h2>
<blockquote>
</blockquote>
<p>•    <strong>전통적 프로그래밍</strong>: 코드와 입력을 컴퓨터에 주어 결과를 도출.
•    <strong>기계학습</strong>: 입력과 원하는 출력을 컴퓨터에 주어 프로그램을 생성.</p>
<h3 id="예시-스펠체킹-프로그램">예시: 스펠체킹 프로그램</h3>
<blockquote>
</blockquote>
<p>•    <strong>전통적 방식</strong>: 규칙과 예외를 일일이 코드로 작성.
•    <strong>기계학습 방식</strong>: 올바른 입력-출력 쌍을 학습 데이터로 주어 알고리즘이 규칙을 학습.</p>
<h2 id="기계학습의-중요한-개념-일반화">기계학습의 중요한 개념: 일반화</h2>
<p>일반화란, 학습된 모델이 학습 데이터 외의 새로운 데이터에서도 좋은 성능을 보이는 능력입니다. 이는 기계학습의 핵심 목표입니다.</p>
<h3 id="일반화의-예시">일반화의 예시</h3>
<p>아이들은 다양한 나무를 보면서 공통된 특성을 파악하여 ‘나무’라는 일반적인 개념을 형성합니다. 이와 마찬가지로 기계학습 모델은 학습 데이터를 통해 패턴을 파악하여 새로운 데이터에 적용할 수 있습니다.</p>
<h2 id="기계학습의-종류">기계학습의 종류</h2>
<blockquote>
</blockquote>
<ol>
<li><strong>Supervised Learning (지도학습)</strong>: 입력(X)과 그에 대응하는 출력(Y)의 쌍을 학습하여 모델을 구축. 주로 분류(Classification)와 회귀(Regression) 작업에 사용.</li>
<li><strong>Unsupervised Learning (비지도학습)</strong>: 레이블이 없는 데이터(X)만을 사용하여 모델을 학습. 주로 클러스터링(Clustering)과 이상 탐지(Anomaly Detection) 작업에 사용.</li>
<li><strong>Semi-Supervised Learning (반지도학습)</strong>: 일부 데이터는 레이블이 있고, 일부는 레이블이 없는 데이터를 사용하여 학습.</li>
<li><strong>Reinforcement Learning (강화학습)</strong>: 에이전트가 환경과 상호작용하며 보상을 통해 학습.</li>
</ol>
<h3 id="supervised-learning-지도학습">Supervised Learning (지도학습)</h3>
<blockquote>
</blockquote>
<p>•    <strong>입력(X)</strong>: 예측하려는 데이터.
•    <strong>출력(Y)</strong>: 예측 대상 데이터.
•    <strong>대표 작업</strong>: 분류(Classification), 회귀(Regression).</p>
<h3 id="unsupervised-learning-비지도학습">Unsupervised Learning (비지도학습)</h3>
<blockquote>
</blockquote>
<p>•    <strong>입력(X)</strong>: 레이블이 없는 데이터.
•    <strong>대표 작업</strong>: 클러스터링(Clustering), 이상 탐지(Anomaly Detection), 밀도 추정(Dense Estimation).</p>
<h3 id="semi-supervised-learning-반지도학습">Semi-Supervised Learning (반지도학습)</h3>
<blockquote>
</blockquote>
<p>•    <strong>입력(X)</strong>: 일부는 레이블이 있고, 일부는 레이블이 없는 데이터.
•    <strong>레이블링</strong>: 비용과 시간 절약을 위해 일부 데이터만 레이블링.</p>
<h3 id="reinforcement-learning-강화학습">Reinforcement Learning (강화학습)</h3>
<blockquote>
</blockquote>
<p>•    <strong>에이전트와 환경</strong>: 에이전트가 환경과 상호작용하며 학습.
•    <strong>보상(Reward)</strong>: 에이전트의 행동에 대한 피드백으로 학습.
•    <strong>예시</strong>: 바둑, 체스 등.</p>
<h2 id="참고-도서">참고 도서</h2>
<p>기계학습을 공부하는 데 유용한 책들을 소개합니다. 많은 책들이 온라인 튜토리얼이나 오픈소스 코드를 제공하므로 이를 활용하여 공부할 수 있습니다.</p>
<blockquote>
</blockquote>
<p>•    <strong>초보자용</strong>: 기초부터 시작하는 R 또는 Python 기반의 예제를 제공.
•    <strong>심화용</strong>: 기계학습 이론과 알고리즘을 깊이 있게 다룸.</p>
<p>이상으로 기계학습의 정의와 종류, 기계학습과 전통적 프로그래밍의 차이, 일반화의 중요성, 기계학습의 다양한 종류, 참고 도서에 대해 살펴보았습니다. 다음 강의에서는 기계학습의 구체적인 알고리즘과 응용에 대해 다룰 예정입니다.</p>
<p>이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『Mathmatics for ML』 Part 3. PCA]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EMathmatics-for-ML%E3%80%8F-Part-3.-PCA</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EMathmatics-for-ML%E3%80%8F-Part-3.-PCA</guid>
            <pubDate>Wed, 24 Jul 2024 03:07:08 GMT</pubDate>
            <description><![CDATA[<p>이번 강의에서는 Principal Component Analysis (PCA)에 대해 다룹니다. PCA는 데이터 차원 축소 기법으로, 데이터 분석과 시각화, 머신러닝 모델의 성능 향상에 매우 유용합니다. 특히, Part 1의 매트릭스 분해(Matrix Decomposition)와 Part 2의 볼록 최적화(Convex Optimization)와 연관지어 PCA의 수학적 원리를 설명합니다.</p>
<h2 id="pca의-동기">PCA의 동기</h2>
<h3 id="차원-축소의-필요성">차원 축소의 필요성</h3>
<p>고차원 데이터는 분석, 시각화, 모델링에 어려움을 줄 수 있습니다. 예를 들어, 2차원 데이터에서 두 번째 차원(X2)은 거의 0에 가깝고 의미가 없는 경우, 이를 무시하고 차원을 줄여 분석하는 것이 효율적입니다. PCA는 이러한 고차원 데이터를 저차원으로 축소하여 의미 있는 정보만을 남기고 분석하는 데 유용합니다.</p>
<h4 id="예시">예시</h4>
<p>예를 들어, 집을 구매할 때 고려하는 다섯 가지 요소(집의 크기, 방의 개수, 화장실의 개수, 학교 근처 여부, 우범지역 여부)를 두 가지 요소(사이즈와 위치)로 축소하여 쉽게 결정할 수 있게 해줍니다.</p>
<h2 id="pca-알고리즘">PCA 알고리즘</h2>
<ol>
<li>센터링(Centering): 각 데이터에서 평균을 빼서 데이터의 중심을 원점으로 이동시킵니다.</li>
<li>스탠다드 데비에이션(Normalization): 각 차원의 분산이 1이 되도록 데이터를 정규화합니다.</li>
<li>데이터 공분산 행렬(Covariance Matrix): 공분산 행렬을 계산하고, 이 행렬의 고유값(Eigenvalue)과 고유벡터(Eigenvector)를 구합니다.</li>
<li>차원 축소(Target Dimension Reduction): 원하는 차원(M개)만큼 가장 큰 고유값에 해당하는 고유벡터를 선택하여 데이터를 축소합니다.</li>
<li>프로젝션(Projection): 선택된 고유벡터 공간으로 데이터를 투영하여 저차원 데이터를 얻습니다.</li>
</ol>
<h2 id="데이터-공분산-행렬">데이터 공분산 행렬</h2>
<p>데이터 공분산 행렬 ( S )는 데이터 매트릭스  X 를 이용하여 다음과 같이 정의됩니다:</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/355b5b32-4117-436c-8027-29d992dceca2/image.png" alt=""></p>
<p> S = \frac{1}{n} X X^T </p>
<p>이 행렬은 항상 대칭(symmetric)이고 양의 정부호(positive definite)입니다. PCA는 이 공분산 행렬의 고유값과 고유벡터를 이용하여 차원을 축소합니다.</p>
<h2 id="pca의-수학적-원리">PCA의 수학적 원리</h2>
<h3 id="variance-maximization">Variance Maximization</h3>
<p>PCA의 목표는 데이터를 저차원 공간으로 투영했을 때 분산(variance)을 최대화하는 방향을 찾는 것입니다. 이를 위해 공분산 행렬의 고유값과 고유벡터를 사용합니다. 가장 큰 고유값에 해당하는 고유벡터가 가장 중요한 주성분(principal component) 방향이 됩니다.</p>
<h4 id="증명-과정">증명 과정</h4>
<ol>
<li>기본 개념 정리: X는 원본 데이터, B는 투영 행렬, Z는 저차원 공간의 데이터입니다. Z의 분산을 최대화하는 방향을 찾는 것이 목표입니다.</li>
<li>Optimization: 주어진 공분산 행렬 S에서 가장 큰 고유값과 이에 대응하는 고유벡터를 찾습니다.</li>
<li>수학적 증명: Lagrangian 함수와 KKT 조건을 이용하여 가장 큰 고유값과 고유벡터를 찾고, 이를 통해 최적의 투영 방향을 구합니다.</li>
</ol>
<h2 id="low-rank-approximation">Low-Rank Approximation</h2>
<p>PCA는 로우랭크 매트릭스 근사(low-rank matrix approximation)와 밀접한 관련이 있습니다. 에카르트-영 정리에 따르면, PCA는 주어진 데이터 매트릭스를 저차원 공간에서 가장 잘 근사하는 방법을 제공합니다.</p>
<h2 id="효율적인-pca-계산">효율적인 PCA 계산</h2>
<p>데이터 차원이 데이터 개수보다 큰 경우, 공분산 행렬의 고유값 분해 대신 SVD(Singular Value Decomposition)를 사용하여 효율적으로 PCA를 계산할 수 있습니다. SVD는 다음과 같이 표현됩니다:</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/eb48b49b-37d8-4aa8-86d6-713297c46cda/image.png" alt=""></p>
<p> X = U \Sigma V^T </p>
<p>여기서 U와 V는 각각 좌우 고유벡터, \Sigma는 고유값 행렬입니다. 이를 이용하여 공분산 행렬의 고유값과 고유벡터를 효율적으로 구할 수 있습니다.</p>
<h2 id="결론">결론</h2>
<p>PCA는 고차원 데이터를 저차원으로 축소하여 중요한 정보를 유지하면서 분석을 용이하게 합니다. 이를 통해 데이터의 시각화, 분석, 머신러닝 모델의 성능을 향상시킬 수 있습니다. 이번 강의에서는 PCA의 기본 개념, 알고리즘, 수학적 원리 및 효율적인 계산 방법을 다루었습니다.</p>
<p>다음 강의에서는 PCA의 응용과 더 발전된 차원 축소 기법에 대해 다룰 예정입니다.
이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『Mathmatics for ML』 Part 2. Convex Optimization]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EMathmatics-for-ML%E3%80%8F-Part-2.-Convex-Optimization</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EMathmatics-for-ML%E3%80%8F-Part-2.-Convex-Optimization</guid>
            <pubDate>Mon, 22 Jul 2024 06:04:10 GMT</pubDate>
            <description><![CDATA[<p>이번 강의에서는 Convex Optimization(볼록 최적화)에 대해 다룹니다. Convex Optimization은 머신러닝 모델 학습에서 매우 중요한 주제로, 모델의 최적 파라미터를 찾는 과정과 밀접한 관련이 있습니다. 이 강의에서는 Convex Optimization의 기본 개념, KKT 조건, 라그랑주 함수 등을 설명하며, 이를 이해하는 데 필요한 핵심 내용을 다룹니다.</p>
<h2 id="최적화-문제의-개요">최적화 문제의 개요</h2>
<p>머신러닝 모델을 학습할 때, 우리는 보통 특정 목적 함수를 최소화하는 최적화 문제를 해결하게 됩니다. 이러한 최적화 문제는 크게 두 가지로 나눌 수 있습니다:</p>
<ol>
<li><strong>Unconstrained Optimization (무제약 최적화)</strong>: 제약 조건이 없는 최적화 문제</li>
<li><strong>Constrained Optimization (제약 최적화)</strong>: 특정 제약 조건을 만족하면서 최적화하는 문제</li>
</ol>
<p>Convex Optimization은 제약 조건이 있는 최적화 문제의 한 유형으로, 목적 함수와 제약 조건이 모두 볼록 함수인 경우를 말합니다.</p>
<h2 id="gradient-descent">Gradient Descent</h2>
<p>Gradient Descent는 최적화 문제를 해결하기 위한 기본적인 방법 중 하나입니다. 이 방법은 목적 함수의 기울기를 따라 내려가며 최소값을 찾는 방식입니다. 기본 알고리즘은 다음과 같습니다:</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/a1198807-0d09-47f2-9e6d-50ee33336ad8/image.png" alt=""></p>
<p>[ \mathbf{x}_{k+1} = \mathbf{x}_k - \gamma_k \nabla f(\mathbf{x}_k) ]</p>
<p>여기서 (\gamma_k)는 학습률(스텝 사이즈)이고, (\nabla f(\mathbf{x}_k))는 함수 (f)의 기울기입니다. Gradient Descent는 스텝 사이즈를 잘 조절하면 함수의 로컬 옵티마로 수렴하게 됩니다.</p>
<h3 id="stochastic-gradient-descent-sgd">Stochastic Gradient Descent (SGD)</h3>
<p>SGD는 데이터의 전체 배치 대신 무작위로 선택된 작은 배치로 Gradient Descent를 수행하는 방법입니다. 이는 계산 비용을 줄이고, 큰 데이터셋에서 효율적으로 동작합니다. Mini-batch Gradient Descent는 이와 유사한 방식으로, 작은 배치를 사용하여 업데이트를 수행합니다.</p>
<h3 id="momentum-gradient-descent">Momentum Gradient Descent</h3>
<p>Momentum Gradient Descent는 이전 업데이트 방향을 고려하여 업데이트를 가속화하는 방법입니다. 기본 아이디어는 이전 단계의 기울기 방향을 현재 단계에서도 일정 부분 반영하는 것입니다. 이를 통해 수렴 속도를 높일 수 있습니다.</p>
<h2 id="constrained-optimization">Constrained Optimization</h2>
<p>제약 조건이 있는 최적화 문제를 해결하기 위해 라그랑주 함수를 사용합니다. 라그랑주 함수는 다음과 같이 정의됩니다:</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/0c484966-13ce-4677-babf-0f63ac7a78ff/image.png" alt=""></p>
<p>[ \mathcal{L}(\mathbf{x}, \lambda, \mu) = f(\mathbf{x}) + \sum_{i} \lambda_i g_i(\mathbf{x}) + \sum_{j} \mu_j h_j(\mathbf{x}) ]</p>
<p>여기서 (\lambda_i)와 (\mu_j)는 라그랑주 승수이며, 각각의 제약 조건 (g_i)와 (h_j)에 해당합니다. 이 함수는 원래의 최적화 문제를 변형하여 제약 조건을 포함한 형태로 만듭니다.</p>
<h3 id="kkt-조건">KKT 조건</h3>
<p>KKT 조건은 제약 최적화 문제의 최적성을 확인하는 데 사용됩니다. 이 조건을 만족하면 해당 해가 최적 해임을 보장합니다. KKT 조건은 다음과 같습니다:</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/01d1a1bd-4110-4dc1-a432-7dc9ec2c10d1/image.png" alt=""></p>
<ol>
<li><strong>Primal feasibility</strong>: (g_i(\mathbf{x}) \leq 0), (h_j(\mathbf{x}) = 0)</li>
<li><strong>Dual feasibility</strong>: (\lambda_i \geq 0)</li>
<li><strong>Stationarity</strong>: (\nabla f(\mathbf{x}) + \sum_{i} \lambda_i \nabla g_i(\mathbf{x}) + \sum_{j} \mu_j \nabla h_j(\mathbf{x}) = 0)</li>
<li><strong>Complementary slackness</strong>: (\lambda_i g_i(\mathbf{x}) = 0)</li>
</ol>
<p>KKT 조건은 모든 제약 최적화 문제에 대해 필요 조건이며, Convex Optimization 문제에서는 충분 조건이기도 합니다.</p>
<h2 id="convex-optimization">Convex Optimization</h2>
<h3 id="convex-set-and-convex-function">Convex Set and Convex Function</h3>
<p>Convex Optimization 문제는 볼록 집합(convex set)과 볼록 함수(convex function)에서 정의됩니다.</p>
<ul>
<li><strong>Convex Set</strong>: 집합 내의 두 점을 잇는 선분이 항상 집합 내에 포함되는 경우</li>
<li><strong>Convex Function</strong>: 함수의 두 점을 잇는 선분의 함수값이 항상 함수의 그래프 위에 있는 경우</li>
</ul>
<h3 id="convex-optimization-problem">Convex Optimization Problem</h3>
<p>볼록 최적화 문제는 다음과 같이 정의됩니다:</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/5a3a8d4f-50c2-4685-a8c9-8f692c7cb2cb/image.png" alt=""></p>
<p>[ \min_{\mathbf{x}} f(\mathbf{x}) \quad \text{subject to} \quad \mathbf{x} \in \mathcal{C} ]</p>
<p>여기서 (f(\mathbf{x}))는 볼록 함수이고, (\mathcal{C})는 볼록 집합입니다.</p>
<h3 id="strong-duality">Strong Duality</h3>
<p>Strong Duality는 Convex Optimization 문제에서 프라이멀 문제와 듀얼 문제의 최적값이 같음을 의미합니다. 이를 통해 듀얼 문제를 풀어 프라이멀 문제의 최적값을 쉽게 찾을 수 있습니다.</p>
<h2 id="결론">결론</h2>
<p>이번 강의에서는 Convex Optimization의 기본 개념과 이를 해결하기 위한 다양한 방법에 대해 정리하였습니다. Gradient Descent, Stochastic Gradient Descent, Momentum Gradient Descent 등 다양한 최적화 기법을 다루었고, 제약 조건이 있는 최적화 문제를 해결하기 위한 라그랑주 함수와 KKT 조건을 설명했습니다. Convex Optimization은 머신러닝 모델 학습에서 중요한 역할을 하며, 이를 이해하는 것이 좋은 모델을 만드는 데 큰 도움이 됩니다.</p>
<p>다음 강의에서는 Convex Optimization의 응용과 더 발전된 최적화 기법에 대해 다룰 예정입니다.
이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『Mathmatics for ML』 Part 1. Matrix Decomposition]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EMathmatics-for-ML%E3%80%8F-Part-1.-Matrix-Decomposition</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EMathmatics-for-ML%E3%80%8F-Part-1.-Matrix-Decomposition</guid>
            <pubDate>Sun, 21 Jul 2024 11:57:33 GMT</pubDate>
            <description><![CDATA[<p>이번 강의 시리즈에서는 &quot;Math for ML&quot;이라는 주제로 세 가지 파트를 소개합니다. 첫 번째 파트에서는 매트릭스 디컴포지션(Matrix Decomposition)을 다룰 예정입니다. 이번 강의에서는 행렬의 기본 개념인 디터미넌트(Determinant), 트레이스(Trace), 그리고 다양한 행렬 분해 방법인 초월스키 디컴포지션(Cholesky Decomposition), 아이겐 디컴포지션(Eigen Decomposition), LU 분해, 그리고 싱글러 밸류 디컴포지션(SVD)에 대해 정리합니다.</p>
<h2 id="디터미넌트와-트레이스">디터미넌트와 트레이스</h2>
<h3 id="디터미넌트">디터미넌트</h3>
<p>디터미넌트는 행렬의 성질을 나타내는 중요한 값 중 하나입니다. 예를 들어, 2x2 행렬의 디터미넌트는 다음과 같이 계산됩니다:</p>
<p>det(𝐴) = 𝑎𝑑−𝑏𝑐</p>
<p>이 값이 0이 아니면 행렬 A는 역행렬을 가지며, 0이면 역행렬이 존재하지 않습니다.</p>
<h3 id="트레이스">트레이스</h3>
<p>트레이스는 행렬의 주대각선 요소들의 합을 의미합니다. 예를 들어, 2x2 행렬의 트레이스는 다음과 같이 계산됩니다:</p>
<p>tr(𝐴)=𝑎+𝑑</p>
<p>트레이스는 주로 행렬의 성질을 파악하거나, 행렬의 대각화 과정에서 중요한 역할을 합니다.</p>
<h2 id="아이겐-디컴포지션">아이겐 디컴포지션</h2>
<h3 id="아이겐밸류와-아이겐벡터">아이겐밸류와 아이겐벡터</h3>
<p>아이겐밸류(고유값)와 아이겐벡터(고유벡터)는 행렬의 중요한 성질을 나타냅니다. 행렬 𝐴가 주어졌을 때, 다음 조건을 만족하는 𝜆와 𝑥를 각각 아이겐밸류와 아이겐벡터라고 합니다:</p>
<p>𝐴𝑥 = 𝜆𝑥</p>
<p>아이겐 디컴포지션은 행렬을 고유값과 고유벡터로 분해하는 방법으로, 주어진 행렬 𝐴를 다음과 같이 표현합니다:</p>
<p>𝐴 = 𝑃Λ𝑃 −1 </p>
<p>여기서 𝑃는 고유벡터들로 이루어진 행렬이고, Λ는 고유값들이 대각선에 위치한 대각 행렬입니다.</p>
<h2 id="초월스키-디컴포지션">초월스키 디컴포지션</h2>
<p>초월스키 디컴포지션은 대칭 행렬을 두 개의 하삼각 행렬로 분해하는 방법입니다. 대칭 양의 정부호 행렬 𝐴는 다음과 같이 분해할 수 있습니다:</p>
<p>𝐴 = 𝐿𝐿^𝑇</p>
<p>여기서 𝐿은 하삼각 행렬입니다. 초월스키 디컴포지션을 사용하면 역행렬 계산, 행렬식 계산 등이 간단해집니다.</p>
<h2 id="싱글러-밸류-디컴포지션-svd">싱글러 밸류 디컴포지션 (SVD)</h2>
<h3 id="svd의-정의">SVD의 정의</h3>
<p>SVD는 임의의 행렬을 세 개의 행렬로 분해하는 방법입니다. 행렬 𝐴는 다음과 같이 분해됩니다:</p>
<p>𝐴 = 𝑈Σ𝑉^𝑇</p>
<p>여기서 𝑈와 𝑉는 각각 직교 행렬이고, Σ는 대각 행렬입니다. SVD는 모든 행렬에 대해 존재하며, 데이터 압축, 잡음 제거 등 다양한 응용 분야에서 사용됩니다.</p>
<h3 id="svd와-아이겐-디컴포지션의-관계">SVD와 아이겐 디컴포지션의 관계</h3>
<p>SVD는 아이겐 디컴포지션의 일반화된 형태입니다. 아이겐 디컴포지션이 대칭 행렬에만 적용되는 반면, SVD는 모든 행렬에 적용될 수 있습니다. 따라서, SVD는 더 넓은 범위의 문제에 대해 사용될 수 있습니다.</p>
<h2 id="정리-및-결론">정리 및 결론</h2>
<p>이번 강의에서는 매트릭스 디컴포지션의 기본 개념과 다양한 방법에 대해 알아보았습니다. 디터미넌트와 트레이스, 아이겐 디컴포지션, 초월스키 디컴포지션, 그리고 싱글러 밸류 디컴포지션에 대해 다루었으며, 각각의 방법이 어떤 상황에서 유용한지에 대해 정리해보았습니다. </p>
<p>이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『AI 윤리』 Part 3. 세계적인 데이터 과학자가 되는 방법]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EAI-%EC%9C%A4%EB%A6%AC%E3%80%8F-Part-3.-%EC%84%B8%EA%B3%84%EC%A0%81%EC%9D%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B3%BC%ED%95%99%EC%9E%90%EA%B0%80-%EB%90%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EAI-%EC%9C%A4%EB%A6%AC%E3%80%8F-Part-3.-%EC%84%B8%EA%B3%84%EC%A0%81%EC%9D%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B3%BC%ED%95%99%EC%9E%90%EA%B0%80-%EB%90%98%EB%8A%94-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Sun, 21 Jul 2024 11:38:01 GMT</pubDate>
            <description><![CDATA[<p>이번 강의에서는 카이스트 차미영 교수님께서 데이터 사이언티스트로 전 세계 여러 기관에서 유명한 분들과 함께 일하면서 얻은 경험과 그들이 어떻게 성공적인 데이터 과학자가 되었는지에 대해 이야기합니다. 특히, 데이터 과학자로서 실천할 수 있는 일상적인 루틴과 태도에 대해 소개합니다.</p>
<h2 id="데이터-과학의-중요성과-성공-사례">데이터 과학의 중요성과 성공 사례</h2>
<h3 id="데이터-과학의-역할">데이터 과학의 역할</h3>
<p>데이터 과학은 디지털 전환을 성공적으로 이끄는 핵심 요소입니다. 데이터 과학자들은 다양한 데이터를 분석하고 이를 통해 유의미한 통찰을 얻어내며, 이를 바탕으로 사회적 문제를 해결하고 새로운 기회를 창출합니다.</p>
<ul>
<li>예시: 서울시의 야간 버스 노선 개선은 통신사와의 협업을 통해 이루어졌습니다. 휴대전화 기지국 데이터를 활용하여 이동 인구를 분석하고 최적의 버스 노선을 설계했습니다.</li>
</ul>
<h3 id="데이터-과학자의-호기심과-상상력">데이터 과학자의 호기심과 상상력</h3>
<p>세계적인 데이터 과학자들이 공통적으로 가지고 있는 특징은 바로 데이터에 대한 호기심과 이종 데이터를 결합하는 능력입니다.</p>
<ul>
<li>뉴욕시 소통 패턴 분석: 인터넷과 전화 소통 데이터를 지리 정보와 결합하여 지역 간 소통 패턴을 분석했습니다.</li>
<li>소셜 네트워크 분석: 소셜 네트워크의 모양을 통해 사용자의 정치 성향, 선호 브랜드, 커플의 지속 가능성 등을 예측할 수 있습니다.</li>
</ul>
<h2 id="데이터-과학자로서의-실천-방법">데이터 과학자로서의 실천 방법</h2>
<h3 id="끊임없는-학습과-도전">끊임없는 학습과 도전</h3>
<p>데이터 과학자는 끊임없이 변화하는 트렌드와 기술을 따라잡기 위해 지속적인 학습과 도전을 해야 합니다.</p>
<ul>
<li>실리콘밸리의 사례: 구글, 아마존, 페이스북 등의 기업은 기존의 산업을 재정의하며 다양한 분야에 도전하고 있습니다. 이러한 도전 정신이 데이터 과학자에게도 필요합니다.</li>
</ul>
<h3 id="높은-목표-설정">높은 목표 설정</h3>
<p>페이스북에서의 경험을 바탕으로 목표 설정 방법을 공유합니다. 50%만 달성 가능성이 있는 높은 목표를 설정함으로써 더 큰 진전을 이루는 방법입니다.</p>
<ul>
<li>목표 설정: 높은 목표를 세우고, 50%만 달성하더라도 성공으로 간주하는 방식으로 더 큰 성과를 이루도록 노력합니다.</li>
</ul>
<h3 id="협업과-멘토십">협업과 멘토십</h3>
<p>큰 성공을 위해서는 멘토와 협업할 팀을 찾는 것이 중요합니다. 다양한 관점을 가진 사람들과 함께 일함으로써 더 나은 결과를 도출할 수 있습니다.</p>
<ul>
<li>레이 달리오의 성공 원칙: 목표 설정, 문제 발견, 근본 원인 분석, 극복 계획 수립, 실행의 반복을 통해 성공을 이루는 방법을 강조합니다.</li>
</ul>
<h2 id="데이터-과학의-사회적-기여">데이터 과학의 사회적 기여</h2>
<h3 id="개발도상국의-물가-예측">개발도상국의 물가 예측</h3>
<p>UN과 협력하여 인도네시아의 물가 예측 프로그램을 개발했습니다. 소셜미디어 데이터를 활용하여 실시간 시장 가격을 예측함으로써 빈곤 문제 해결에 기여했습니다.</p>
<h3 id="가짜뉴스-탐지">가짜뉴스 탐지</h3>
<p>빅데이터와 인공지능을 활용하여 가짜뉴스를 탐지하는 방법을 연구했습니다. 네트워크에서 퍼지는 모양을 분석하여 진짜 뉴스와 가짜 뉴스를 구분합니다.</p>
<h3 id="우주-항공-분야">우주 항공 분야</h3>
<p>미성 영상의 처리 기술을 통해 고해상도 주간 영상을 분석하고, 최빈국의 경제 상황이나 도시의 녹지양을 분석하는 등의 연구를 수행했습니다.</p>
<h2 id="결론">결론</h2>
<p>데이터 과학자는 데이터에 대한 호기심과 상상력을 바탕으로 끊임없이 학습하고 도전해야 합니다. 높은 목표를 설정하고, 협업과 멘토십을 통해 더 나은 결과를 이루어낼 수 있습니다. 데이터 과학은 사회적 문제를 해결하고 새로운 기회를 창출하는 데 중요한 역할을 합니다. 여러분 모두가 데이터 과학자로서 큰 비전과 열정을 가지고 활동하길 바랍니다.</p>
<p>이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다. 데이터 과학의 중요성과 윤리적 문제를 깊이 이해하고, 기술 발전과 함께 윤리적, 사회적 책임을 다하는 멋진 데이터 과학자가 되길 바랍니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『AI 윤리』 Part 2. AI Ethics]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EAI-%EC%9C%A4%EB%A6%AC%E3%80%8F-Part-2.-AI-Ethics</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EAI-%EC%9C%A4%EB%A6%AC%E3%80%8F-Part-2.-AI-Ethics</guid>
            <pubDate>Sun, 21 Jul 2024 11:33:50 GMT</pubDate>
            <description><![CDATA[<p>이번 강의에서는 AI 알고리즘이 우리 사회에 가져오는 다양한 영향과 특히 AI가 창작자로서 활동하면서 발생하는 여러 윤리적 이슈들을 다루어 보겠습니다. 또한, AI의 결정이 인간의 윤리와 다를 때 어떻게 대처해야 할지에 대해 논의하겠습니다.</p>
<h2 id="ai와-창작의-만남">AI와 창작의 만남</h2>
<h3 id="ai와-예술의-융합">AI와 예술의 융합</h3>
<p>AI는 주어진 문제에 대한 답을 잘 찾는 것으로 알려져 있습니다. 많은 직업들이 AI로 인해 대체될 가능성이 높지만, 예술과 창작 활동은 여전히 인간 고유의 영역으로 여겨졌습니다. 그러나 AI의 발전으로 이제는 예술 작품도 AI가 창작할 수 있는 시대가 되었습니다.</p>
<ul>
<li><p>음악 창작: 스페인 말라가 대학에서 개발된 AI ‘IAMUS’는 단 6분 만에 교향곡을 작곡했습니다. 이 곡은 런던 심포니 오케스트라에 의해 연주되었으며, AI가 창작하고 인간이 연주하는 형태를 보여주었습니다.</p>
</li>
<li><p>문학 창작: 일본 호카이도 대학에서 개발한 AI는 SF 소설을 작성하여 호시 신이치 문학상 1차 예선을 통과하기도 했습니다.</p>
</li>
<li><p>시각 예술: AI 알고리즘으로 생성된 작품들이 고액에 판매되면서 예술 시장에서 큰 주목을 받고 있습니다. 예를 들어, AI가 생성한 작품을 3D 프린터로 출력하여 판매하는 등의 사례가 있습니다.</p>
</li>
</ul>
<h3 id="ai-창작의-윤리적-문제">AI 창작의 윤리적 문제</h3>
<p>AI가 창작한 작품에 대한 저작권 문제는 복잡한 윤리적, 법적 문제를 야기합니다. AI 작품의 저작권을 누구에게 부여할지, 학습에 사용된 데이터 제공자에게 어떤 권리를 줄지 등에 대한 논의가 필요합니다.</p>
<ul>
<li><p>저작권 문제: AI가 생성한 작품에 대해 프로그래머, 데이터 제공자, 기획자 등 다양한 주체 간의 저작권 분배 문제가 발생합니다.</p>
</li>
<li><p>학습 데이터의 기여: 학습에 사용된 데이터의 기여도를 평가하고, 원 제작자에게 적절한 보상을 제공하는 방안 마련이 필요합니다.</p>
</li>
<li><p>법적 제도 부재: 현재 법적 제도는 인간만이 저작권을 가질 수 있도록 되어 있어, AI에게 저작권을 부여하는 것은 법적으로 인정되지 않습니다.</p>
</li>
<li><p>윤리적 문제: AI가 생성한 작품이 폭력을 조장하거나 차별을 조장하는 등의 윤리적 문제가 발생할 수 있습니다.</p>
</li>
</ul>
<h2 id="ai의-결정과-인간-윤리">AI의 결정과 인간 윤리</h2>
<h3 id="로봇-3원칙과-자율주행-자동차">로봇 3원칙과 자율주행 자동차</h3>
<p>아시모프의 로봇 3원칙은 AI와 로봇의 윤리적 문제를 다루는 데 중요한 기준을 제공합니다. 그러나 자율주행 자동차와 같은 실제 사례에서는 여전히 많은 윤리적, 법적 문제가 남아 있습니다.</p>
<ul>
<li><p>로봇 3원칙:</p>
<ol>
<li>로봇은 인간을 다치게 해서는 안 되며, 인간이 해를 입는 것조차 방관해서는 안 된다.</li>
<li>로봇은 인간의 명령에 복종해야 한다. 단, 첫 번째 원칙에 위배되지 않는 한에서다.</li>
<li>로봇은 스스로를 보호해야 한다. 단, 첫 번째 및 두 번째 원칙에 위배되지 않는 한에서다.</li>
</ol>
</li>
<li><p>자율주행 자동차: 자율주행 차량으로 인한 사고 발생 시, 법적 책임이 누구에게 있는지에 대한 명확한 기준이 필요합니다. 예를 들어, 자율주행 차량이 보행자를 치어 사망하게 한 사건에서 법적 책임이 운전자, 개발자, 차량 소유자 중 누구에게 있는지가 논란이 되었습니다.</p>
</li>
</ul>
<h3 id="moral-machine-experiment">Moral Machine Experiment</h3>
<p>MIT의 Moral Machine Experiment는 자율주행 자동차의 윤리적 문제를 다루는 연구로, 다양한 윤리적 딜레마 상황에서 AI의 결정을 평가합니다.</p>
<ul>
<li><p>트롤리 문제: 빠르게 다가오는 기차나 자동차가 멈출 수 없는 상황에서 A나 B 둘 중 하나의 길을 선택해야 하는 딜레마를 다룹니다.</p>
</li>
<li><p>연구 결과: 다양한 상황에서 사람들이 선택하는 윤리적 결정을 수집하여 AI의 윤리적 판단 기준을 마련하고자 했습니다.</p>
</li>
</ul>
<h2 id="결론">결론</h2>
<p>AI의 발전은 우리의 삶을 혁신적으로 변화시키고 있습니다. 그러나 AI가 창작자로서 활동하고, 자율주행 자동차와 같은 윤리적 딜레마에 직면하게 되면서, 우리는 새로운 윤리적, 법적 문제에 직면하고 있습니다.</p>
<ul>
<li><p>저작권과 법적 제도: AI의 창작물에 대한 저작권 문제와 법적 제도의 개선이 필요합니다.</p>
</li>
<li><p>윤리적 기준 마련: AI의 결정이 인간의 윤리와 충돌하지 않도록 윤리적 기준을 마련해야 합니다.</p>
</li>
<li><p>사회적 책임: AI가 인간의 삶에 미치는 영향을 고려하여, 기술 발전과 함께 윤리적, 사회적 책임을 다하는 것이 중요합니다.</p>
</li>
</ul>
<p>이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[『AI 윤리』 Part 1. 데이터 분석과 AI학습에서 유의할 점]]></title>
            <link>https://velog.io/@d_yeon819/%E3%80%8EAI-%EC%9C%A4%EB%A6%AC%E3%80%8F-Part-1.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B3%BC-AI%ED%95%99%EC%8A%B5%EC%97%90%EC%84%9C-%EC%9C%A0%EC%9D%98%ED%95%A0-%EC%A0%90</link>
            <guid>https://velog.io/@d_yeon819/%E3%80%8EAI-%EC%9C%A4%EB%A6%AC%E3%80%8F-Part-1.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B3%BC-AI%ED%95%99%EC%8A%B5%EC%97%90%EC%84%9C-%EC%9C%A0%EC%9D%98%ED%95%A0-%EC%A0%90</guid>
            <pubDate>Sun, 21 Jul 2024 11:27:10 GMT</pubDate>
            <description><![CDATA[<h2 id="1-데이터-해석의-중요성">1. 데이터 해석의 중요성</h2>
<h3 id="상관관계와-인과관계-구분">상관관계와 인과관계 구분</h3>
<p>상관관계: 두 변수 간의 연관성.
인과관계: 하나의 변수가 다른 변수에 직접적인 영향을 미침.
예시: 초콜릿 소비와 노벨상 수상자 수의 상관관계는 있지만, 인과관계를 의미하지는 않음.
유의점: 상관관계는 반드시 인과관계를 의미하지 않음. 데이터 분석 시, 이를 명확히 구분해야 하며, 잘못된 결론을 도출하지 않도록 주의해야 함.</p>
<h3 id="에러-바의-중요성">에러 바의 중요성</h3>
<p>에러 바: 데이터의 신뢰도를 나타내는 시각적 가이드.
통계적 유의미성을 판단할 때 에러 바를 활용해 정확한 해석 필요.
유의점: 에러 바를 통해 데이터의 변동성을 이해하고, 이를 반영하여 신뢰할 수 있는 결론을 도출해야 함.</p>
<h2 id="2-데이터-전처리와-정제">2. 데이터 전처리와 정제</h2>
<h3 id="데이터-정규화-및-아웃라이어-제거">데이터 정규화 및 아웃라이어 제거</h3>
<p>비정상적으로 큰 값이나 작은 값을 제거해 데이터의 품질을 높임.
EDA(탐색적 데이터 분석) 과정을 통해 데이터의 이상치를 찾아내고 정제함.
유의점: 데이터 정제 과정에서 발생할 수 있는 손실을 최소화하고, 분석의 정확성을 높이기 위해 데이터를 세심하게 다루어야 함.</p>
<h3 id="학습-데이터의-양">학습 데이터의 양</h3>
<p>언더피팅: 모델이 너무 단순해 충분히 학습되지 않은 상태.
오버피팅: 모델이 너무 복잡해 특정 데이터에만 특화된 상태.
적절한 데이터 양과 모델 복잡성을 유지해야 함.
유의점: 모델의 성능을 최적화하기 위해 데이터 양과 모델 복잡성의 균형을 맞추는 것이 중요함.</p>
<h2 id="3-블랙박스-모델의-문제점">3. 블랙박스 모델의 문제점</h2>
<h3 id="설명력-부족">설명력 부족</h3>
<p>AI 모델의 내부 작동 방식을 이해하기 어려움.
예시: WCO의 탈세범 잡는 알고리즘에서 설명력이 부족해 세관원들이 신뢰하지 못했던 사례.
유의점: 블랙박스 모델의 한계를 극복하기 위해 설명력을 높이는 노력이 필요함.</p>
<h3 id="설명력-향상-노력">설명력 향상 노력</h3>
<p>사후 설명력: 모델의 결정 과정을 시각화해 제공.
해석 가능한 모델: 처음부터 설명 가능한 형태로 설계된 모델.
유의점: 설명 가능한 AI 모델을 통해 사용자 신뢰를 높이고, 더 나은 의사결정을 지원할 수 있음.</p>
<h2 id="4-데이터-편향-문제">4. 데이터 편향 문제</h2>
<h3 id="인터넷-데이터-분석의-주의점">인터넷 데이터 분석의 주의점</h3>
<p>스파이럴 오브 사이런스: 소수의 강한 의견이 다수의 의견처럼 보이는 편향 현상.
오정보의 빠른 확산과 인포데믹 문제.
유의점: 데이터의 대표성과 진실성을 확보하기 위해 편향된 정보를 걸러내는 노력이 필요함.</p>
<h3 id="개인정보-보호와-잊혀질-권리">개인정보 보호와 잊혀질 권리</h3>
<p>개인 정보의 안전한 보관과 필요 최소한의 정보 요청.
과거의 정보가 계속 노출되지 않도록 검색 결과에서 제거하는 법적 권리.
유의점: 데이터의 보안과 개인 정보 보호를 위해 최신 법률과 규정을 준수해야 함.</p>
<h2 id="5-알고리즘의-편향-문제">5. 알고리즘의 편향 문제</h2>
<h3 id="콤파스-제도와-인종차별">콤파스 제도와 인종차별</h3>
<p>피고의 재범률을 예측하는 콤파스 알고리즘의 인종적 편향 사례.
유의점: 알고리즘이 사회적 편향을 반영하지 않도록 데이터의 편향을 제거하고, 공정성을 확보해야 함.</p>
<h3 id="채용-알고리즘의-성차별">채용 알고리즘의 성차별</h3>
<p>아마존의 채용 알고리즘이 남성 중심의 데이터를 학습해 여성 지원자를 차별한 사례.
유의점: 채용 과정에서의 성차별 문제를 해결하기 위해 알고리즘의 편향을 주의 깊게 점검해야 함.
챗봇의 편향 문제
MS의 챗봇 테이가 사용자들에게 편향된 데이터를 학습해 차별적 발언을 한 사례.
유의점: 챗봇 등의 AI 서비스가 편향된 정보를 학습하지 않도록 지속적으로 모니터링하고 관리해야 함.</p>
<h2 id="결론">결론</h2>
<h3 id="데이터-품질-관리">데이터 품질 관리</h3>
<p>데이터 확보, 전처리, 분석, 해석의 전 과정에서 주의해야 함. 데이터의 품질이 바로 알고리즘의 학습 품질을 결정하기 때문에 데이터에 대한 많은 노력을 드려야 함. 특히 오차 범위, 특이점, 대표성 문제를 항상 고민해야 함.</p>
<h3 id="알고리즘의-설명력과-신뢰성">알고리즘의 설명력과 신뢰성</h3>
<p>성능만 높은 것이 아니라 설명력과 신뢰성을 겸비한 알고리즘이 필요함. AI가 인간의 결정을 돕거나 대체하는 경우, 윤리적이고 사회적 규범에 맞는 의사결정을 지원할 수 있도록 노력해야 함.</p>
<h3 id="편향에-대한-경각심">편향에 대한 경각심</h3>
<p>알고리즘이 사회적 편향을 조장하지 않도록 주의해야 함. 이를 위해 데이터의 편향을 제거하고, 공정성을 유지하는 것이 중요함.</p>
<p>이 요약본은 LG Aimers Academy의 교육 내용을 바탕으로 작성되었습니다. 데이터 과학과 AI 학습에서 윤리적 소양을 중요하게 여기는 모든 분들에게 도움이 되길 바랍니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chemical Process Anomaly Detection | 화학 공정 이상 탐지]]></title>
            <link>https://velog.io/@d_yeon819/Chemical-Process-Anomaly-Detection-%ED%99%94%ED%95%99-%EA%B3%B5%EC%A0%95-%EC%9D%B4%EC%83%81-%ED%83%90%EC%A7%80-8ayvnf7a</link>
            <guid>https://velog.io/@d_yeon819/Chemical-Process-Anomaly-Detection-%ED%99%94%ED%95%99-%EA%B3%B5%EC%A0%95-%EC%9D%B4%EC%83%81-%ED%83%90%EC%A7%80-8ayvnf7a</guid>
            <pubDate>Tue, 07 May 2024 02:03:36 GMT</pubDate>
            <description><![CDATA[<pre><code>팀명 : EOC-VCP</code></pre><p><em>벌써 패스트캠퍼스 AI 부트캠프 과정의 마지막 프로젝트 회고 시간이 왔다. 이 많은 프로젝트를 어떻게 쳐냈는지, 어떻게 여기까지 버텨왔는지 생각만해도 꿈만 같다. 마지막 프로젝트에서는 팀원도 한 명 더 늘었고 마지막이기도 해서 2개의 프로젝트에 참여하기로 하였다.<del>(인간의 욕심은 끝이 없고 같은 실수를 반복하지..ㅋ)</del> 그래도 프로젝트 기간이 4주 정도 되어서 프로젝트를 2개 참여하여도 무리 없을 거라고 생각하였다.</em></p>
<h3 id="1-프로젝트-개요">1. 프로젝트 개요</h3>
<p><strong>A. 개요</strong></p>
<p>24시간 내내 운영되는 화학 공정은 이상이 발생하면 막대한 금전적 피해를 입을 수 있다. 공정 상태를 예측하고 대비책을 마련하는 것이 중요한 과제인데, 이를 위해서는 공정 데이터를 이해하고 이상 징후를 파악하는 것이 필수적이다.</p>
<p>본 대회는 화학 공정 데이터를 이용한 이상 탐지(anomaly detection)를 수행하여, 공정 데이터에서 비정상적인 동작을 탐지하는 것을 목표로 한다. 이를 통해 공정에서 발생할 수 있는 문제를 예측하고 대비할 수 있다.</p>
<p>본 대회에서 사용되는 입력 데이터와 출력 데이터는 모두 CSV 파일 형태로 제공된다. 입력 데이터로는 약 25만 개의 화학 공정 데이터가 제공되며, 이에 대응하는 약 7만 2천 개의 출력 데이터가 제공된다.</p>
<p>이상 탐지를 위한 알고리즘 개발은 화학 공정 분야에서 매우 중요한 과제이며, 이를 통해 공정의 안정성을 높이고 예기치 않은 문제를 예방할 수 있다는 점에서 큰 의미가 있다.</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/439f3b99-ee38-43da-8999-07b742f68fd9/image.png" alt=""></p>
<h4 id="제공된-데이터셋"><strong>제공된 데이터셋</strong></h4>
<blockquote>
<ol>
<li>train data 250,000</li>
<li>test data 72,000</li>
</ol>
</blockquote>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/516462d4-9c43-450d-a733-39bd2bf2f572/image.png" alt=""></p>
<p>데이터셋 설명</p>
<p>학습 데이터는 csv 파일 형태로 제공된다. 학습 데이터에는 모두 정상 가동인 상태의 화학 공정 데이터만 포함 되어있다.</p>
<p>학습 데이터는 250000 개의 row와 55개의 column 으로 구성되어 있고, column 의 데이터 타입은 float 형태이다.</p>
<p>각 column의 의미는 다음과 같다.</p>
<ul>
<li><p>faultNumber : 
정상인지, 비정상인지 나타내는 Label. 
정상일 경우 &#39;0&#39;, 비정상일 경우 &#39;1&#39; </p>
</li>
<li><p>simulationRun : 
시뮬레이션이 실행된 Run 의 번호
동일한 하나의 simulationRun 이 정상일 경우 faultNumber 가 모두 &#39;0&#39;.
반대로 하나의 simulationRun 이 비정상일 경우 faultNumber 가 모두 &#39;1&#39;.
학습 데이터에는 정상 데이터만 존재. 따라서 faultNumber 가 모두 &#39;0&#39;.
테스트 데이터에는 정상/비정상 데이터가 모두 존재. 따라서 faultNumber 가 모두 &#39;0&#39;인 simulationRun도 있고, faultNumber 모두 &#39;1&#39;인 simulationRun도 있다.</p>
</li>
<li><p>sample : 
하나의 Run 안의 sample 번호를 의미한다. 학습 데이터는 한 Run 당 500 sample 이 있다.</p>
</li>
<li><p>xmeas_* : measurement 의 약자로, 화학 공정에서 측정된 센서 값.</p>
</li>
<li><p>xmv_* : manipulated variable 의 약자로, 화학 공정에서 제어되는 값.</p>
</li>
<li><p>summary : 해당 대화를 바탕으로 작성된 요약문.</p>
</li>
</ul>
<p><strong>B. 환경</strong></p>
<ul>
<li><p>팀 구성 및 컴퓨팅 환경</p>
<p>  7인 1팀, 인당 RTX 3090ti 서버를 VSCode와 SSH로 연결하여 사용</p>
</li>
<li><p>협업 환경</p>
<p>  Notion, GitHub</p>
</li>
<li><p>의사 소통</p>
<p>  KakaoTalk, Zoom, Slack, Discord</p>
</li>
</ul>
<h3 id="2-프로젝트-팀-구성-및-역할">2. 프로젝트 팀 구성 및 역할</h3>
<ul>
<li><p><strong>팀 구성</strong>
  이번 프로젝트 팀원으로 배정된 인원은 7명 이었다. <del>매니저님 말씀으로는 우리 팀이 안정된 팀이고 잘 운영되고 있는 팀이라 계속 팀원을 한 명씩 추가하는 것이라고 하셨다.</del> 나는 팀원이 좀 더 늘면 할 수 있는 Task 가 많아질 것이라 생각하였고 좋은 방향이라는 생각을 하였다.</p>
<p>  <img src="https://velog.velcdn.com/images/d_yeon819/post/5d83d4d0-f2c7-4e4f-a44d-492266c64b4a/image.png" alt=""></p>
</li>
</ul>
<ul>
<li><strong>역할</strong></li>
</ul>
<pre><code>Task 목록은 다음과 같다.
&gt; 데이터 이해 및 시각화(Data understanding and visualization)
&gt; 통계기반 이상탐지(Statistical-based anomaly detection)
&gt; 1인 1모델링 및 파라미터 튜닝(Individualized modeling and hyperparameter tuning)
&gt; 결과 정리 및 보고서 작성(Summarization of Results and Report Writing)


이번 프로젝트에서는 간트차트를 적극 활용하였다. 팀원 중 한 분과 나는 간트차트 제작을 담당하기로 하였다. 처음 만들어보는 간트차트에 막막하기도 하고 구성이 잘 되지 않았었는데 우여곡절 끝에 하루를 통째로 투자한 결과 아주 만족스러운 결과가 나왔다. 막상 만들어놓으니 프로젝트 진행상황을 파악하기도 편했고 그 때, 그 때 회의록 작성하기도 좋았다. 회의에 참여하지 못한 사람이 이 간트차트의 내용만 파악해도 이해가 될 수 있도록 구성하려고 노력했던 것 같다.</code></pre><h3 id="3-프로젝트-수행-절차-및-방법">3. 프로젝트 수행 절차 및 방법</h3>
<p><strong>A. 팀 목표 설정</strong></p>
<blockquote>
<p><strong>1주차</strong> : 주어진 Upstage 강의 다 듣기, train 데이터 및 test 데이터 패턴 파악하기, base line code 이해하기
<strong>2주차</strong> : 통계 기반 이상탐지, Model 탐색 및 baseline code 작성
<strong>3주차</strong> : 모델링, 모델 튜닝, 최종 모델 완성, 모델 고도화
<strong>4주차</strong> : Dash Board 작성, Report 작성, PPT 제작, GitHub 관리</p>
</blockquote>
<p><strong>B. 프로젝트 사전 기획</strong></p>
<p>(1) 협업 문화</p>
<blockquote>
<ol>
<li>특별한 일을 제외하고는 항상 모여서 의논하면서 Task 진행할 것(Zoom, Discord)</li>
<li>오프라인 모임이 가능할 경우 오프라인 만남을 적극 활용할 것(소통 Skill Up)</li>
<li>논의 사항 및 오류 사항이 있을 경우 즉각 팀원들과 상의할 것</li>
<li>New 아이디어 발생 시 Team Notion에 작성 후 팀원 호출하여 해당 아이디어에 대해 공유할 것</li>
<li>말하지 않아도 각자 중간 진행 상황에 대해 틈틈이 보고할 것</li>
</ol>
</blockquote>
<p>우리팀의 좋았던 점은 별 일 없으면 항상 온라인 소통 플랫폼에 항상 접속해 있는 것이었다. 문제가 생기면 언제든 소통이 가능했고 좋은 아이디어가 생겨도 실시간으로 바로바로 소통이 가능했다. 이 점이 팀 프로젝트 결과물을 뽑아내는 데 중요한 요소였던 것 같다. 이번에 새로 합류한 팀원께도 플랫폼 초대 링크를 보내어 참석할 수 있도록 하였다. <del>우리 팀은 기존의 Zoom 플랫폼 보다 Discord 활용을 더 많이 한 것 같다.</del>
팀원이 많았기 때문에 다양한 시도를 해볼 수 있었다. 항상 매일 Meeting을 통해 그 날 그 날 할 일에 대해 계획을 수립하였고 수립한 계획을 Notion에 작성하였다. 그리고 다 진행된 내용에 대해서는 check 표시를 하여 모두가 진행 상황을 알 수 있도록 기록으로 남겨두었다. 우리 팀은 1인 1모델링을 하기로 했었으므로 7가지의 모델 중 1가지의 모델을 심도있게 공부하여 팀원들과 공유하는 시간을 가지기도 하였다. </p>
<h3 id="4-프로젝트-수행-결과">4. 프로젝트 수행 결과</h3>
<p>Public - Final Result(F1 score : 0.9204)</p>
<p>Private -Final Result(F1 score : 0.9091)</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/0357ae29-68f6-47fb-884f-f20a5de5cef9/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/2855da3f-a1d2-4631-96dd-1884c4d7483d/image.png" alt=""></p>
<p>결론적으로 K-Means 모델링 결과가 가장 좋게 나왔다. 나는 DBSCAN을 담당하였는데, 모델을 공부할 당시 DBSCAN은 K-Means 모델의 단점을 개선한 모델이라 더 명확한 구분이 가능하다는 장점을 소개한 내용을 확인했었다. 하지만 막상 모델링을 해보니 그렇지 않았다. DBSCAN은 밀도 기반 클러스터링이므로 애초에 화학공정 이상 탐지 데이터와는 특성이 맞지 않은 모델이었던 것 같다. </p>
<h3 id="5-자체-평가-의견">5. 자체 평가 의견</h3>
<p><strong>A. 잘했던 점</strong></p>
<ul>
<li>각자 하나의 모델을 심도있게 파보는 시간을 가졌다. 모델 고도화에 초점을 맞췄던 점이 좋았다.</li>
<li>각자의 다양한 관점을 실시간으로 공유하여 함께 진행하는 프로젝트 분위기를 만들고자 하였다.</li>
<li>간트차트를 활용하여 프로젝트 진행 상황을 보기 좋게 정리하고자 하였다.</li>
</ul>
<p><strong>B. 시도 했으나 잘 되지 않았던 것들</strong></p>
<ul>
<li>DBSCAN 모델을 고도화 시키기 위해 정말 많은 방법을 시도해보았다. DBSCAN의 Hyperparameter는 epsilon과 Minpts 로 2가지가 있다. 나는 elbow point를 고려하여 epsilon 값을 설정하고 강의에서 MinPts는 주로 4이하의 값으로 쓴다는 이야기를 반영하여 Hyperparameter 설정을 해보았지만 결과는 크게 달라지지 않았다. Hyperparameter 값을 수정하면서 Clustering 수를 늘려보아도 이상치들이 너무 많이 검출되었고, 완벽하게 clustering 되지 않는 결과를 보였다. </li>
</ul>
<p><strong>C. 아쉬웠던 점들</strong></p>
<ul>
<li>1인 1모델을 담당했던 점이 좋기도 하면서 아쉬운 점이기도 했다. 우리는 대회를 2개를 참여하는 팀이었기에 한 대회에만 목을 맬 수 없는 상황이었다. 하지만 각자의 모델을 지정하고 해당 모델을 고도화 시키는 방법을 선택하니 그 모델 이외에 다른 모델을 도전해볼 시간이 부족하였다. 데이터를 먼저 확인하고 데이터에 맞는 모델을 선택하여 고도화 시키는 방법을 선택했으면 더 좋은 결과를 산출할 수 있지 않았을까 하는 아쉬움이 남는다.</li>
</ul>
<p><strong>D. 프로젝트를 통해 배운 점 또는 시사점</strong></p>
<ul>
<li>멘토링 해주신 멘토님의 말씀이 기억에 남는다. &quot;아무 근거 없이 모델을 선택하여 그 모델을 바탕으로 데이터를 분석하기 보다는 먼저 데이터 분석을 완벽히한 후 해당 데이터에 맞는 모델을 선택하는 과정이 필요하며, 그 과정이 굉장히 중요하다&quot;는 말씀을 하셨다. 이번 대회를 통해서 모델을 세부적으로 공부하는 시간을 가졌으니 다음 대회에서는 데이터 파악에 좀 더 힘을 실어야겠다는 생각을 하게 되었다. </li>
</ul>
<h3 id="마무리">마무리</h3>
<p>드디어 길고 길었던 AI 부트캠프 과정이 끝이 났다. 마지막 대회여서 시원 섭섭하기도 하고 뿌듯하기도 하고 그렇지만 아쉬운 부분이 굉장히 많이 남는다. 여기서 배웠던 모든 과정들 그리고 훌륭하신 멘토님과 강사님께서 해주신 말씀들을 잘 새겨 담아 실무에서 유능하게 써먹을 수 있는 사람이 되도록 노력할 것이다. </p>
<p>#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #인공지능개발자 #ML #머신러닝 #경진대회 #딥러닝 #NLP</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Scientific Knowledge Question Answering | 과학 지식 질의 응답 시스템 구축]]></title>
            <link>https://velog.io/@d_yeon819/Scientific-Knowledge-Question-Answering-%EA%B3%BC%ED%95%99-%EC%A7%80%EC%8B%9D-%EC%A7%88%EC%9D%98-%EC%9D%91%EB%8B%B5-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95</link>
            <guid>https://velog.io/@d_yeon819/Scientific-Knowledge-Question-Answering-%EA%B3%BC%ED%95%99-%EC%A7%80%EC%8B%9D-%EC%A7%88%EC%9D%98-%EC%9D%91%EB%8B%B5-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95</guid>
            <pubDate>Mon, 06 May 2024 16:08:50 GMT</pubDate>
            <description><![CDATA[<pre><code>팀명 : GBE-SK</code></pre><p><del>앞서 작성한 Anomaly Detection과 겹치는 내용이 많기에 상당 부분 생략될 수 있음을 미리 말씀 드리고자 한다.</del></p>
<h3 id="1-프로젝트-개요">1. 프로젝트 개요</h3>
<p><strong>A. 개요</strong></p>
<p>LLM의 등장 이후 여러 산업 분야에서 지식을 다루는 업무들이 점점 고도화되고 있다.</p>
<p>특히 정보를 찾기 위해 검색엔진의 입력창에 키워드를 입력하고 결과를 확인하고 원하는 정보가 없으면 다른 키워드로 다시 검색하기를 반복하는 번거로운 과정을 이제 더이상 자주 할 필요가 없어졌다.</p>
<p>이제 LLM한테 물어보면 질문의 의도까지 파악해서 필요한 내용만 잘 정리해서 알려 준다.
<img src="https://velog.velcdn.com/images/d_yeon819/post/3b14e212-ae50-4fae-a65d-0e9e8f08cb74/image.png" alt=""></p>
<p>그렇지만 LLM이 가진 근본적인 한계도 있다.</p>
<p>먼저, 정보라는 것은 의미나 가치가 시간에 따라 계속 변하기 때문에 모델이 이를 실시간으로 학습하기 힘들고 이 때문에 아래 예시처럼 knowledge cutoff 가 자연스럽게 발생한다.
<img src="https://velog.velcdn.com/images/d_yeon819/post/2730db07-0330-41f1-900d-8f758bc1f868/image.png" alt=""></p>
<p>그리고 LLM이 알려주는 지식이 항상 사실에 기반한 것이 아닌 경우가 종종 있다. 특히 특정 도메인이나 문제 영역은 매우 심각한 거짓 정보들을 생성해 내곤 한다. 아래 예시에서 추천하는 맛집들은 모두 실재하지 않는 장소들이다.
<img src="https://velog.velcdn.com/images/d_yeon819/post/178863f5-7757-4847-876d-914421e54fb6/image.png" alt=""></p>
<p>이러한 환각 현상은 메타인지를 학습하지 않은 LLM의 근본적인 한계라 볼 수 있다.</p>
<p>모델은 학습 과정에서 정보를 압축해서 저장하기 때문에 정보의 손실이 발생할 수밖에 없고, 이 때문에 특정 입력 조건에 대해서는 사실 여부보다는 지식를 표현하는 국소적인 패턴이 더 큰 영향을 주면서 답변이 생성될 수 있기 때문이다.</p>
<p>이러한 문제를 극복하기 위해서는 RAG(Retrieval Augmented Generation) 기술이 필수이다.</p>
<p>RAG는 질문에 적합한 레퍼런스 추출을 위해 검색엔진을 활용하고 답변 생성을 위해 LLM(Large Language Model)을 활용한다.</p>
<p>이때 LLM은 스스로 알고 있는 지식을 출력하기보다는 언어 추론 능력을 극대화하는 것에 방점을 둔다.</p>
<p>이렇게 사실에 기반한 지식 정보를 토대로 질문에 답을 하고 출처 정보도 같이 줄 수 있기 때문에 사용자는 훨씬 더 안심하고 정보를 소비할 수 있게 된다.</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/bc6aef00-31ac-4bf2-99a7-0203c2f2161f/image.png" alt=""></p>
<p>이번 대회에서는 과학 상식을 질문하는 시나리오를 가정하고 과학 상식 문서 4200여개를 미리 검색엔진에 색인해 둔다.</p>
<p>대화 메시지 또는 질문이 들어오면 과학 상식에 대한 질문 의도인지 그렇지 않은 지 판단 후에 과학 상식 질문이라면 검색엔진으로부터 적합한 문서들을 추출하고 이를 기반으로 답변을 생성한다. </p>
<p>만일 과학 상식 이외의 질문이라면 검색엔진을 활용할 필요 없이 적절한 답을 바로 생성한다.</p>
<p>마지막으로, 본 프로젝트는 모델링에 중점을 둔 대회가 아니라 RAG(Retrieval Augmented Generation) 시스템의 개발에 집중하고 있다. 이 대회는 여러 모델과 다양한 기법, 그리고 앙상블을 활용하여 모델의 성능을 향상시키는 일반적인 모델링 대회와는 다르다. 대신에 검색 엔진이 올바른 문서를 색인했는지, 그리고 생성된 답변이 적절한지 직접 확인하는 것이 중요한 대회이다.</p>
<p>따라서, 참가자들은 작은 규모의 토이 데이터셋(10개 미만)을 사용하여 초기 실험을 진행한 후에 전체 데이터셋에 대한 평가를 진행하는 것을 권장한다. 실제로 RAG 시스템을 구축할 때에도 이러한 방식이 일반적으로 적용되며, 이를 통해 실험을 더욱 효율적으로 진행할 수 있다. 따라서 이번 대회는 2주간 진행되며, 하루에 제출할 수 있는 횟수가 5회로 제한된다.</p>
<p>자, 이제 여러분만의 RAG 시스템을 구축하러 가보실까~?</p>
<p>출처: Upstage(AI Stages)</p>
<h4 id="제공된-데이터셋"><strong>제공된 데이터셋</strong></h4>
<blockquote>
<p>과학 상식 정보를 담고 있는 순수 색인 대상 문서 4200여개(학습 데이터 별도 제공 X)</p>
</blockquote>
<p>파일 포맷은 각 line이 json 데이터인 jsonl 파일이다.
<img src="https://velog.velcdn.com/images/d_yeon819/post/d2167f8c-d150-411d-b926-ce3f59944deb/image.png" alt=""></p>
<p>학습 데이터 설명</p>
<p>이번 대회는 머신러닝 모델을 학습하는 것 보다는 임베딩 생성 모델, 검색엔진, LLM 등을 활용하여 레퍼런스를 잘 추출하고 이를 토대로 얼마나 답변을 잘 생성하는지 판단하는 대회이다.</p>
<p>따라서 모델 학습을 위한 학습데이터를 별도로 제공하지 않고, 과학 상식 정보를 담고 있는 순수 색인 대상 문서 4200여개가 제공된다. </p>
<p>문서의 예시는 아래와 같다. &#39;doc_id&#39;에는 uuid로 문서별 id가 부여되어 있고 &#39;src&#39;는 출처를 나타내는 필드이다. 그리고 실제 RAG에서 레퍼런스로 참고할 지식 정보는 &#39;content&#39; 필드에 저장되어 있다.</p>
<p>참고로  데이터를 Open Ko LLM Leaderboard에 들어가는 Ko-H4 데이터 중 MMLU, ARC 데이터를 기반으로 생성했기 때문에 출처도 두가지 카테고리를 가진다.</p>
<p><strong>B. 환경</strong></p>
<ul>
<li><p>팀 구성 및 컴퓨팅 환경</p>
<p>  7인 1팀, 인당 RTX 3090ti 서버를 VSCode와 SSH로 연결하여 사용</p>
</li>
<li><p>협업 환경</p>
<p>  Notion, GitHub</p>
</li>
<li><p>의사 소통</p>
<p>  KakaoTalk, Zoom, Slack, Discord</p>
</li>
</ul>
<h3 id="2-프로젝트-팀-구성-및-역할">2. 프로젝트 팀 구성 및 역할</h3>
<ul>
<li><p><strong>팀 구성</strong>
  IR 대회도 AD 대회와 마찬가지로 7명이서 진행하였다. 공식적으로 등록된 건 AD 3명, IR 4명 이었지만 모두가 함께 2개의 대회에 참여하였다. 이 중 나는 공식적으로는 IR 팀에 배정되어 대회에 참여하게 되었다.
  IR도 AD와 동일하게 간트차트를 작성하여 Task 구성을 한 눈에 보기 좋게 구성하였다. 나는 IR 간트차트를 담당하게 되었었는데 처음 간트차트를 접하고 구성하느라 하루를 통째로 투자하였던 것 같다. 덕분에 결과물은 보기 좋게 나온 것 같아 만족스러웠다. </p>
<p>  <img src="https://velog.velcdn.com/images/d_yeon819/post/11eb4e4e-bcf2-4523-8698-235c277f7699/image.png" alt=""></p>
</li>
</ul>
<ul>
<li><strong>역할</strong></li>
</ul>
<pre><code>Task 목록은 다음과 같다.
&gt; Information Retrieval 공부하기 및 강의 듣기
&gt; 데이터 확인 및 분류(Data Verification)
&gt; 프롬프트 엔지니어링(Prompt Engineering)
&gt; 모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)
&gt; 결과 정리 및 보고서 작성(Summarization of Results and Report Writing)


IR은 모두가 처음 접해보는 분야기도 하고 아직 다른 교육 과정에서 쉽게 접할 수 없는 내용이어서 개인적으로 공부하는 시간을 오래가졌다. 이 분야는 RAG 실습만 짜여진대로 잘 따라하고 짜여진 baseline code만 잘 이해해도 반 이상은 얻어가는 분야라는 이야기가 많았다. 처음 나의 목표는 &#39;짜여진 Baseline code라도 잘 이해해서 얻어가자&#39; 였다. </code></pre><h3 id="3-프로젝트-수행-절차-및-방법">3. 프로젝트 수행 절차 및 방법</h3>
<p><strong>A. 팀 목표 설정</strong></p>
<blockquote>
<p><strong>1주차</strong> : 주어진 Upstage 강의 다 듣기, Data 구성 확인하기, base line code 이해하기
<strong>2주차</strong> : Prompt engineering 고도화
<strong>3주차</strong> : 모델링, 모델 튜닝, prompt 수정, 최종 모델 완성
<strong>4주차</strong> : 보고서 작성, PPT 제작, GIT 관리</p>
</blockquote>
<p><strong>B. 프로젝트 사전 기획</strong></p>
<p>(1) 협업 문화</p>
<blockquote>
<ol>
<li>특별한 일을 제외하고는 항상 모여서 의논하면서 Task 진행할 것(Zoom, Discord)</li>
<li>오프라인 모임이 가능할 경우 오프라인 만남을 적극 활용할 것(소통 Skill Up)</li>
<li>논의 사항 및 오류 사항이 있을 경우 즉각 팀원들과 상의할 것</li>
<li>New 아이디어 발생 시 Team Notion에 작성 후 팀원 호출하여 해당 아이디어에 대해 공유할 것</li>
<li>말하지 않아도 각자 중간 진행 상황에 대해 틈틈이 보고할 것</li>
</ol>
</blockquote>
<p>이번 대회에서는 정말 많은 플랫폼을 활용하였다. Notion부터 시작해서 Discord, Zoom, GitHub 등등 좀 더 활용하고 있는 플랫폼을 극대화 시키고자 노력했던 것 같다. 나는 Meeting을 진행할 때마다 꼭 회의록을 작성하여 Notion에 남겨두는 습관을 들였다. 나중에 회의에 불참한 사람이든, 집중하지 못한 사람이든 누가봐도 어떤 회의를 진행하였는지 확인하기 위함이었다.</p>
<h3 id="4-프로젝트-수행-결과">4. 프로젝트 수행 결과</h3>
<p>팀 최고 점수
Public - Final Result(MAP : 0.9045)
개인 점수
Public - Final Result(MAP : 0.7121)</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/82f2119f-c7b0-4224-8811-90b14df2e00a/image.png" alt=""></p>
<p>팀 최고 점수
Private -Final Result(MAP : 0.8652)
개인 점수
Private - Final Result(MAP : 0.7227)</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/1294c023-a1f0-4f2e-b5be-7fc7f18e02d4/image.png" alt=""></p>
<p>우리 팀에서는 총 5가지의 관점으로 이 대회에 접근하였다. </p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/84d3f4a2-3696-4ecb-8328-7f52a2e895bd/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/9b6c4baa-2bf9-44ff-a624-4a0e6c2d7641/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/88a6ba11-a542-49ed-9374-5d7e8364f412/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/610ccc6d-e8fe-4f57-8887-35a03e859028/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/86751d09-92b8-4bbb-b5f0-94e5d838dbc8/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/7dc30633-4d53-4943-a3c3-763de980ace5/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/4f8fda2d-3638-4c46-8f1d-597bb5c8ad03/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/b5665326-d15a-41c6-9a7d-f2d6d66358f2/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/df517931-281c-4cb1-9d5e-b3d2fbc23d3b/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/b979aac2-04a7-4116-a245-8a058580de69/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/b836485b-8c43-4119-bd92-8d705333fab6/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/c2c32347-4ad7-46a1-8c8d-8b2ca5b72eab/image.png" alt=""></p>
<p>나는 이 중에서 Hybrid retrieval(Sparse + Dense)와 HyDE(Hypothetical Document Embeddings), Prompt engineering에 집중하였다. </p>
<p>참고 자료로 PPT 링크를 첨부하도록 하겠다. <a href="https://docs.google.com/presentation/d/1mjfruR3dbH1T0Uw-ifn6qpIbkh_5tFiU/edit#slide=id.p1">참고자료 : PPT</a></p>
<h3 id="5-자체-평가-의견">5. 자체 평가 의견</h3>
<p><strong>A. 잘했던 점</strong></p>
<ul>
<li>새로운 관점으로 접근하기 위해 HyDE 기법을 추가하였다.</li>
<li>대회 방향에 알맞은 문서 색인을 할 수 있도록 Prompt 수정을 끊임없이 하였다.</li>
</ul>
<p><strong>B. 시도 했으나 잘 되지 않았던 것들</strong></p>
<ul>
<li>Hybrid retrieve(Sparse + Dense)를 적용하기 위해 나름대로 코드를 작성했으나 적용이 되지 않고 있었다는 것을 대회 마무리 때 알게 되었다. 급한대로 Hybrid 적용을 한 코드로 여러가지 프롬프트 실험을 많이 해보았지만 이상하게 나만 성능이 잘 나오지 않았다. 이후에 대회가 끝나고 코드 탐색을 다시 해보았는데 Sparse와 Dense의 score를 맞추는 작업이 이루어 지지 않고 있던 문제를 발견하게 되었다.</li>
</ul>
<p><strong>C. 아쉬웠던 점들</strong></p>
<ul>
<li>실제로 HyDE 기법은 성능 향상에 효과가 있었다. 비록 잘못된 코드(Sparse + Dense score 작업이 이루어지지 않은)로 돌렸지만 12.55% 성능 향상이 결과적으로 확인 되었다. 하지만 Prompt 수정에 너무 많은 시간을 썼었고, HyDE 기법을 대회 마무리 쯤 알게 되어 많은 시도를 해보지 못한 것이 아쉬웠다. 팀원들에게 이 기법을 공유하여 적용할 수 있는 시간이 없어서 나 혼자 시도 해보고 마무리 했던 점이 굉장히 아쉬웠다. </li>
</ul>
<p><strong>D. 프로젝트를 통해 배운 점 또는 시사점</strong></p>
<ul>
<li>접하기 어려운 RAG 시스템을 직접 공부하고 경험할 수 있어서 정말 값진 경험이었다고 생각한다. 실제로 Open AI API Credit 까지 일정 금액 제공해주셔서 실제로 GPT 를 사용하여 모델을 학습시킬 수 있었던 것이 정말 좋았다. LLM의 발전은 무궁무진하다. 이 분야로 뛰어들기 위해서는 정말 많은 공부를 해야겠다는 다짐을 하게 된 계기였던 것 같다. </li>
</ul>
<h3 id="마무리">마무리</h3>
<p>Information Retrieval 대회까지 모두 마무리하였다. 패스트 캠퍼스 부트캠프를 참여하며 정말 상상도 못할 정도로 많은 성장이 있었다는 생각이 든다. 코드 한 줄 칠 줄 몰랐던 내가 조금씩이나마 코드를 칠 줄 알게 되었다는 점, 코드를 읽고 이해할 수 있게 되었다는 점, 컴퓨터 프로그램 언어를 활용하여 데이터를 분석할 수 있게 되었다는 점, 이 모든 게 패스트캠퍼스가 아니었으면 불가능 했을 것 같다. 이 값진 경험들을 잊지 않고 계속 활용할 수 있도록 앞으로도 많은 노력을 할 것이다 !</p>
<p>#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #인공지능개발자 #ML #머신러닝 #경진대회 #딥러닝 #NLP</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Anomaly Detection | [업스테이지] AI 실전 학습_강의개요]]></title>
            <link>https://velog.io/@d_yeon819/Anomaly-Detection-%EC%97%85%EC%8A%A4%ED%85%8C%EC%9D%B4%EC%A7%80-AI-%EC%8B%A4%EC%A0%84-%ED%95%99%EC%8A%B5%EA%B0%95%EC%9D%98%EA%B0%9C%EC%9A%94</link>
            <guid>https://velog.io/@d_yeon819/Anomaly-Detection-%EC%97%85%EC%8A%A4%ED%85%8C%EC%9D%B4%EC%A7%80-AI-%EC%8B%A4%EC%A0%84-%ED%95%99%EC%8A%B5%EA%B0%95%EC%9D%98%EA%B0%9C%EC%9A%94</guid>
            <pubDate>Sun, 14 Apr 2024 16:36:14 GMT</pubDate>
            <description><![CDATA[<h3 id="오리엔테이션ot">오리엔테이션(OT)</h3>
<p>CH01 - 이상 탐지 개요</p>
<ul>
<li>차원 축소 기술</li>
<li>EDA</li>
<li>데이터 시각화</li>
</ul>
<p>CH02 - ML 기반 이상 탐지</p>
<ul>
<li><p>본격적인 이상 탐지 학습</p>
</li>
<li><p>D/L이 아닌 조금 더 전통적인 방식의 머신러닝 기술에 대해 학습</p>
<ul>
<li>통계 기반</li>
<li>분류 기반</li>
<li>군집 기반</li>
</ul>
</li>
<li><p>D/L is not all you need!</p>
</li>
</ul>
<p>CH03 - DL 기반 이상 탐지</p>
<ul>
<li>딥러닝을 사용하는 이상 탐지 기술에 대해 알아보는 시간</li>
<li>모든 경우에 딥러닝이 적잘하지는 않지만, 여전히 가장 강력한 AI 기술</li>
<li>비 선형적인 데이터에 적용하기 적절</li>
</ul>
<p>CH04 - 이상 탐지 Case study</p>
<ul>
<li>공개된 데이터 셋으로 이상탐지에 대해 구체적으로 알아보는 시간</li>
<li>2개의 kaggle case study</li>
</ul>
<h3 id="이상탐지-개요">이상탐지 개요</h3>
<ol>
<li><p>이상 탐지?</p>
<ul>
<li>데이터의 대다수와 현저히 다르며 정상 범위에서 벗어나서 드물게 발생하는 항목, 사건, 관측치를 찾아내는 과정</li>
</ul>
</li>
<li><p>이상 탐지 use-case</p>
<ul>
<li>이상탐지 기술이 활용되는 예시</li>
</ul>
<ol>
<li>Image 이상 탐지            <pre><code> - 촬영된 이미지
 - 의료 도메인, 산업용 공정 등에서 활용</code></pre></li>
<li>Text 이상 탐지</li>
</ol>
<ul>
<li>문자로 표현되는 데이터의 의미를 파악하는 이상 탐지</li>
</ul>
<ol start="3">
<li>Tabular data 이상 탐지</li>
</ol>
<ul>
<li>테이블(표) 형태로 표현 가능한 데이터의 이상 탐지</li>
<li>수치적, 통계적 특성을 주로 활용</li>
</ul>
<ol start="4">
<li>Time-series data 이상 탐지</li>
</ol>
<ul>
<li>일정한 시간 정보를 포함한 데이터의 이상 탐지</li>
<li>사이버 공격 방어, 실시간 금융 거래 모니터링</li>
</ul>
</li>
<li><p>이번 강의에서는!</p>
<ul>
<li>Tabular + Time-series + a</li>
<li>전통적인 방식의 머신 러닝 알고리즘에 대해 학습</li>
</ul>
</li>
</ol>
<h3 id="데이터-특성의-이해">데이터 특성의 이해</h3>
<ol>
<li><p>데이터 종류
[데이터 정보]
정량적 vs 정성적 정보
=&gt; 정량적 : 수치, 도형, 기호 등 바로 측정할 수 있는 정보
=&gt; 정성적 : 언어나 문자 등 &#39;설명&#39;이 필요한 정보
[데이터 유형]
정형 데이터(Structured data)
=&gt; 행과 열로 구성되어 있는 테이블 형태의 데이터
시계열 데이터(Time Series Data)
=&gt; 시간 정보가 존재하는 tabular data
비정형 데이터(Unstructured data)
=&gt; 정해진 구조가 없이 저장된 데이터
반정형 데이터(Semi-Structured data)
=&gt; 데이터 내용 안에 구조에 대한 설명이 함께 존재함
=&gt; tabular data와 다르게 고정된 스키마가 없음
=&gt; XML, HTML, Json 등</p>
</li>
<li><p>EDA(Exploratory Data Analysis)</p>
</li>
</ol>
<ul>
<li><p>EDA란?
=&gt; 시각화, 통계적 기법 적용 등을 통해 데이터를 탐색하는 과정</p>
</li>
<li><p>EDA의 핵심 요소
=&gt; 데이터의 각 column의 의미를 파악하고 상관 관계를 파악
=&gt; 결측치 처리 및 데이터 필터링
=&gt; 직관적이고 쉽게 이해할 수 있는 데이터 시각화</p>
</li>
<li><p>Dataset 이해</p>
</li>
<li><p>결측치 파악</p>
</li>
<li><p>데이터 시각화 </p>
<ul>
<li>hourly / daily / weekly</li>
<li>Value Distribution (Day &amp; Hour)</li>
<li>Hour &amp; Day: Demand by Hour</li>
</ul>
</li>
</ul>
<h3 id="차원-축소">차원 축소</h3>
<ol>
<li>고차원 데이터와 차원 축소</li>
</ol>
<ul>
<li><p>고차원 데이터
=&gt; 고차원 데이터 : 많은 수의 변수나 특성을 가진 데이터
=&gt; 차원의 저주(The Curse of Dimensionality) : 데이터의 차원이 증가함에 따라 필요한 데이터 샘플의 양이 기하급수 적으로 증가하여 모델 학습과 일반화에 어려움을 초래하는 현상
=&gt; 시각화 문제 : 차원이 높은(복잡한) 데이터는 직관적으로 이해하기 힘듦</p>
</li>
<li><p>차원 축소
=&gt; 데이터의 특성(Feature)을 줄여서 데이터를 간결하게 만드는 기술</p>
</li>
</ul>
<ol start="2">
<li>차원 축소 방법</li>
</ol>
<ul>
<li><p>차원 축소 유형
=&gt; Feature Selection : 분석 목적에 부합하는 소수의 특징만을 선택
=&gt; Feature Extraction : 기존 특징의 변환을 통해 새로운 특징 추출</p>
</li>
<li><p>PCA(Principal Component Analysis; 주 성분 분석)
=&gt; 여러 변수간 존재하는 상관관계를 이용해 이를 대표하는 주성분을 추출해 차원을 축소하는 방법</p>
</li>
<li><p>t-SNE(t-distributed Stochastic Neighbor Embedding)
=&gt; 고차원 데이터를 저차원에 t-확률 분포로 표현하는 비선형 차원축소 방법</p>
</li>
<li><p>PCA vs t-SNE
=&gt; 데이터가 비 선형적인 관계를 가진다면 t-SNE 활용
=&gt; 데이터가 선형적인 관계를 가진다고 PCA가 더 좋은 것은 아님</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Dialogue Summarization | 일상 대화 요약]]></title>
            <link>https://velog.io/@d_yeon819/Dialogue-Summarization-%EC%9D%BC%EC%83%81-%EB%8C%80%ED%99%94-%EC%9A%94%EC%95%BD</link>
            <guid>https://velog.io/@d_yeon819/Dialogue-Summarization-%EC%9D%BC%EC%83%81-%EB%8C%80%ED%99%94-%EC%9A%94%EC%95%BD</guid>
            <pubDate>Mon, 25 Mar 2024 03:31:43 GMT</pubDate>
            <description><![CDATA[<pre><code>팀명 : 버블리그(Bobble League)</code></pre><p><del><em>딥러닝 프로젝트 중 2번째 프로젝트인 NLP 프로젝트가 끝났다. NLP 프로젝트 회고를 작성해보고자 한다.</em></del></p>
<h3 id="1-프로젝트-개요">1. 프로젝트 개요</h3>
<p><strong>A. 개요</strong></p>
<p>Dialogue Summarization 경진대회는 주어진 데이터를 활용하여 일상 대화에 대한 요약을 효과적으로 생성하는 모델을 개발하는 대회이다. </p>
<p>일상생활에서 &#39;대화&#39;는 항상 이루어지고 있다. 회의나 토의는 물론이고, 사소한 일상 대화 중에도 서로 다양한 주제와 입장들을 주고 받는다. 나누는 대화를 녹음해두더라도 대화 전체를 항상 다시 들을 수는 없기 때문에 요약이 필요하고, 이를 위한 통화 비서와 같은 서비스들도 등장하고 있다.</p>
<p>그러나 하나의 대화에서도 관점, 주제별로 정리하면 수 많은 요약을 만들 수 있다. 대화를 하는 도중에 이를 요약하게 되면 대화에 집중할 수 없으며, 대화 이후에 기억에 의존해 요약하게 되면 오해나 누락이 추가되어 주관이 많이 개입되게 된다.</p>
<p>이를 돕기 위해, 우리는 이번 대회에서 일상 대화를 바탕으로 요약문을 생성하는 모델을 구축하려고 한다.</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/769c21ce-7ce2-4ba1-93fb-d31a0d44fdd7/image.png" alt=""></p>
<h4 id="제공된-데이터셋"><strong>제공된 데이터셋</strong></h4>
<blockquote>
<ol>
<li>train data 12,457</li>
<li>dev 499</li>
<li>hidden-test 249</li>
</ol>
</blockquote>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/34e858c5-8866-49e2-8eda-b4bf82e00e6f/image.png" alt=""></p>
<p>주어진 데이터는 다음과 같았으며, 각 column의 설명은 다음과 같다.
frame : 대화 고유 번호. 중복되는 번호가 없음.
dialogue : 최소 2명에서 최대 7명이 등장하여 나누는 대화 내용이다. 각각의 발화자를 구분하기 위해 #Person”N”#: 을 사용하며, 발화자의 대화가 끝나면 &#39;\n&#39; 으로 구분한다. 이 구분자를 기준으로 하여 대화에 몇 명의 사람이 등장하는지 확인해보는 부분은 EDA 에서 다루고 있다.</p>
<p>summary : 해당 대화를 바탕으로 작성된 요약문.</p>
<p><strong>B. 환경</strong></p>
<ul>
<li><p>팀 구성 및 컴퓨팅 환경</p>
<p>  6인 1팀, 인당 RTX 3090ti 서버를 VSCode와 SSH로 연결하여 사용</p>
</li>
<li><p>협업 환경</p>
<p>  Notion, GitHub</p>
</li>
<li><p>의사 소통</p>
<p>  KakaoTalk, Zoom, Slack, Discord</p>
</li>
</ul>
<h3 id="2-프로젝트-팀-구성-및-역할">2. 프로젝트 팀 구성 및 역할</h3>
<ul>
<li><p><strong>팀 구성</strong>
  이번 프로젝트 팀원으로 배정된 인원은 6명 이었다. 늘 함께하던 4명, 그리고 이전 Computer Vision 대회에서 새로 추가된 1명을 제외하고 또 한 분이 새로 들어오게 되었다. 역시나 이번에도 또래여서 큰 불화 없이 프로젝트를 잘 마무리 하였다.  </p>
</li>
<li><p><strong>역할</strong></p>
</li>
</ul>
<pre><code>Task 목록은 다음과 같다.
&gt; 데이터 확인 및 분류(Data Verification and Classification)
&gt; 데이터 전처리 및 EDA(Data Preprocessing and Exploratory Data Analysis)
&gt; 모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)
&gt; 결과 정리 및 보고서 작성(Summarization of Results and Report Writing)


모두가 함께 모든 Task 에 참여했다. 하지만 우리 팀에 Deep Learning 쪽으로 연구를 오래 진행하셨던 분이 두 분이나 계셔 그 분들의 지식과 인사이트를 바탕으로 프로젝트를 진행하였다. ~~그 분들도 NLP Project 는 처음이라 하셨지만 Deep Learning에 이제 막 발을 담근 나보다는 더 잘할 것이라 생각했고, 현실적으로 그게 맞았다.~~</code></pre><h3 id="3-프로젝트-수행-절차-및-방법">3. 프로젝트 수행 절차 및 방법</h3>
<p><strong>A. 팀 목표 설정</strong></p>
<blockquote>
<p><strong>1주차</strong> : 주어진 Upstage 강의 다 듣기, train 데이터 및 test 데이터 패턴 파악하기, base line code 이해하기
<strong>2주차</strong> : 기존 데이터 탐색 및 파악하기(EDA 및 전처리), 데이터 증강하기(Data Augmentation, EDA + AEDA)
<strong>3주차</strong> : 모델링, 모델 튜닝, 최종 모델 완성</p>
</blockquote>
<p><strong>B. 프로젝트 사전 기획</strong></p>
<p>(1) 협업 문화</p>
<blockquote>
<ol>
<li>특별한 일을 제외하고는 항상 모여서 의논하면서 Task 진행할 것(Zoom, Discord)</li>
<li>오프라인 모임이 가능할 경우 오프라인 만남을 적극 활용할 것(소통 Skill Up)</li>
<li>논의 사항 및 오류 사항이 있을 경우 즉각 팀원들과 상의할 것</li>
<li>New 아이디어 발생 시 Team Notion에 작성 후 팀원 호출하여 해당 아이디어에 대해 공유할 것</li>
<li>말하지 않아도 각자 중간 진행 상황에 대해 틈틈이 보고할 것</li>
</ol>
</blockquote>
<p>우리팀의 좋았던 점은 별 일 없으면 항상 온라인 소통 플랫폼에 항상 접속해 있는 것이었다. 문제가 생기면 언제든 소통이 가능했고 좋은 아이디어가 생겨도 실시간으로 바로바로 소통이 가능했다. 이 점이 팀 프로젝트 결과물을 뽑아내는 데 중요한 요소였던 것 같다. 이번에 새로 합류한 팀원께도 플랫폼 초대 링크를 보내어 참석할 수 있도록 하였다. <del>우리 팀은 기존의 Zoom 플랫폼 보다 Discord 활용을 더 많이 한 것 같다.</del>
다른 팀 보다 늘 다양한 과정과 관점, 다양한 결과물을 완성시켰던 것 같다. 이번 발표회에서도 강사님께서 이 부분을 우리팀의 장점이라 높이 칭찬하셨다. EDA 프로젝트부터 Machine Learning 프로젝트, Machine Learning 대회, Deep Learning(CV), Deep Learning(NLP) 대회까지 동일한 팀원들과 프로젝트를 진행 중인데 변하지 않고 이런 협업 분위기가 지속되고 있어 개인적으로 너무 만족스럽다. 새로 팀에 합류하신 또 다른 한 분도 우리의 팀 분위기에 자연스럽게 녹아들어 임해주셔서 너무 감사한 마음이 들었다. </p>
<h3 id="4-프로젝트-수행-결과">4. 프로젝트 수행 결과</h3>
<p>Public - Final Result(F1 score : 42.5474)</p>
<p>Private -Final Result(F1 score : 39.3707)</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/8834137f-1140-4bb2-97c4-caaab8803552/image.png" alt=""></p>
<p>우리 팀은 8가지 Tokenizer 를 사용하여 다양한 시도를 해보았다. Hugging Face에 업로드 되어있는 각기 다른 8가지의 Tokenizer를 활용하여 다른 적용을 시도하려 했다.</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/1c586c13-d45d-45d1-811d-3fe14b9b2617/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/951cbc01-5b4a-487f-9d9b-df87285974b9/image.png" alt=""></p>
<p>이후에는 EDA 를 통해 Data 를 증강하고자 했다. 데이터 증강 기법에 대한 기술은 PPT에 자세히 기술해두었으니 참고하면 될 것 같다. <a href="https://docs.google.com/presentation/d/15cafHlTN6UNRAf8-hrg2hwa0m6lNMWFO/edit?usp=sharing&amp;ouid=112740872612879476638&amp;rtpof=true&amp;sd=true">PPT링크</a></p>
<h3 id="5-자체-평가-의견">5. 자체 평가 의견</h3>
<p><strong>A. 잘했던 점</strong></p>
<ul>
<li>다양한 Tokenizer를 사용해보고 다양한 EDA(데이터 증강)을 진행하였다.</li>
<li>각자의 다양한 관점을 실시간으로 공유하여 함께 진행하는 프로젝트 분위기를 만들고자 하였다.</li>
<li>wandb 를 통해 팀원들의 모델 학습 결과를 실시간으로 확인하며 피드백하는 방식으로 진행하였다.</li>
</ul>
<p><strong>B. 시도 했으나 잘 되지 않았던 것들</strong></p>
<ul>
<li>큰 모델을 돌려보고 싶었으나 서버 용량 이슈로 인해 중간에 서버가 여러번 끊기는 현상이 발생하였다. T5만 돌리려고 해도 GPU 용량 문제로 오류가 발생하였다. 좀 더 큰 용량의 서버였다면 T5와 같은 큰 모델도 잘 돌아가지 않았을까 싶다.</li>
</ul>
<p><strong>C. 아쉬웠던 점들</strong></p>
<ul>
<li>저번 CV 대회 때와 동일하게 팀원 간의 수준 차이가 상당히 컸다. 나를 비롯한 4명의 사람들은 딥러닝 실전에 경험이 없는 사람이었으며, 나머지 2명은 딥러닝에 경험이 있는 사람들이었다. 그 분들과 대화를 하는 과정에서 의견 교류가 원활하게 되지 않았던 것 같다. <del>CV 때도 버벅이며 따라가기 벅찼는데 이어서 NLP 까지 진행하려니 여간 힘든 게 아니었다. 아마 그 분들이 엄청 답답했을 것 같다.</del>그래도 관련 도서를 구매하여 개인적으로 공부를 시작하기로 다짐하는 계기가 되었다.</li>
</ul>
<p><strong>D. 프로젝트를 통해 배운 점 또는 시사점</strong></p>
<ul>
<li>자연어 처리를 어떻게 하는 건지에 대해 대략적으로 알 수 있게 되었다. </li>
<li>자연어 처리 중 &#39;요약&#39;이 어떤 모델과 과정을 통해 진행되는지 파악할 수 있던 시간이었다.</li>
</ul>
<h3 id="마무리">마무리</h3>
<p>Computer Vision 대회에 이어서 NLP 대회를 마무리하게 되었다. 모든 게 다 처음인 딥러닝 대회는 초심자에게 쉬운 대회는 아니었던 것 같다. 그래도 팀원 중 두 분이 어느 정도 경험이 있어 어깨 너머로 단어 하나하나 접해가며 천천히 배워가는 과정을 겪었던 시간이었다. NLP는 지금 현재 중요하게 뜨고 있는 분야이다. 정말 열심히 기초부터 잘 채워서 실무에 바로 적용할 수 있는 정도까지의 실력을 키워야겠다는 생각을 하게 되었다. NLP 교재 또한 2권 정도 구매하여, 복습할 겸 부족한 지식을 채워나가야 겠다.</p>
<p>#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #인공지능개발자 #ML #머신러닝 #경진대회 #딥러닝 #NLP</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Document Type Classification | 문서 타입 분류]]></title>
            <link>https://velog.io/@d_yeon819/Document-Type-Classification-%EB%AC%B8%EC%84%9C-%ED%83%80%EC%9E%85-%EB%B6%84%EB%A5%98</link>
            <guid>https://velog.io/@d_yeon819/Document-Type-Classification-%EB%AC%B8%EC%84%9C-%ED%83%80%EC%9E%85-%EB%B6%84%EB%A5%98</guid>
            <pubDate>Thu, 22 Feb 2024 09:26:55 GMT</pubDate>
            <description><![CDATA[<pre><code>팀명 : 플러스</code></pre><p><del><em>우여곡절 길고 길었던 CV 프로젝트가 끝났다. 처음 접해보는 Deep Learning 프로젝트여서 순탄하게 진행되지 않았던 것 같지만 그래도 열심히 참여했던 CV 프로젝트 회고를 작성해보고자 한다.</em></del></p>
<h3 id="1-프로젝트-개요">1. 프로젝트 개요</h3>
<p><strong>A. 개요</strong></p>
<p>이번 대회는 computer vision domain에서 가장 중요한 태스크인 이미지 분류 대회이다.</p>
<p>이미지 분류란 주어진 이미지를 여러 클래스 중 하나로 분류하는 작업이다. 이러한 이미지 분류는 의료, 패션, 보안 등 여러 현업에서 기초적으로 활용되는 태스크이다. 딥러닝과 컴퓨터 비전 기술의 발전으로 인한 뛰어난 성능을 통해 현업에서 많은 가치를 창출하고 있다.</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/ac20e913-2b31-4b80-889a-edb995cd77e1/image.png" alt=""></p>
<p>그 중, 이번 대회는 문서 타입 분류를 위한 이미지 분류 대회였다. 문서 데이터는 금융, 의료, 보험, 물류 등 산업 전반에 가장 많은 데이터이며, 많은 대기업에서 디지털 혁신을 위해 문서 유형을 분류하고자 한다. 이러한 문서 타입 분류는 의료, 금융 등 여러 비즈니스 분야에서 대량의 문서 이미지를 식별하고 자동화 처리를 가능케 할 수 있다.</p>
<h4 id="제공된-데이터셋"><strong>제공된 데이터셋</strong></h4>
<blockquote>
<ol>
<li>총 17개 종의 문서로 분류되어 있는 1570장의 train data</li>
<li>총 17개 종의 문서로 분류해야 하는 3140장의 test data</li>
</ol>
</blockquote>
<p>주어진 데이터는 다음과 같았으며, 이번 대회는 test data 가 train data 보다 많다는 점이 의아한 점이었다. 또한 이번 data는 현업에서 사용하는 실 데이터를 기반으로 대회를 제작했다고 하여 기대감이 컸다.</p>
<p><strong>B. 환경</strong></p>
<ul>
<li><p>팀 구성 및 컴퓨팅 환경</p>
<p>  5인 1팀, 인당 RTX 3090ti 서버를 VSCode와 SSH로 연결하여 사용</p>
</li>
<li><p>협업 환경</p>
<p>  Notion, GitHub</p>
</li>
<li><p>의사 소통</p>
<p>  KakaoTalk, Zoom, Slack, Discord</p>
</li>
</ul>
<h3 id="2-프로젝트-팀-구성-및-역할">2. 프로젝트 팀 구성 및 역할</h3>
<ul>
<li><p><strong>팀 구성</strong>
  프로젝트 팀원으로 배정된 인원은 5명 이었다. 늘 함께하던 4명을 제외하고 한 분이 새로 들어오게 되었는데 이번에 들어오신 분은 참여도가 높으셔서 개인적으로 만족스러운 팀워크를 형성할 수 있어 좋았다. </p>
</li>
<li><p><strong>역할</strong></p>
</li>
</ul>
<pre><code>Task 목록은 다음과 같다.
&gt; 데이터 확인 및 분류(Data Verification and Classification)
&gt; 데이터 전처리 및 EDA(Data Preprocessing and Exploratory Data Analysis)
&gt; 모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)
&gt; 결과 정리 및 보고서 작성(Summarization of Results and Report Writing)


모두가 함께 모든 Task 에 참여했다. 하지만 우리 팀에 Computer Vision 쪽으로 연구를 오래 진행하셨던 분이 두 분이나 계셔 그 분들의 지식과 인사이트를 바탕으로 프로젝트를 진행하였다.</code></pre><h3 id="3-프로젝트-수행-절차-및-방법">3. 프로젝트 수행 절차 및 방법</h3>
<p><strong>A. 팀 목표 설정</strong></p>
<blockquote>
<p><strong>1주차</strong> : 주어진 Upstage 강의 다 듣기, test 데이터 패턴 파악하기, base line code 이해하기
<strong>2주차</strong> : Human Classification, 기존 데이터 탐색 및 파악하기(EDA 및 전처리)
<strong>3주차</strong> : 모델링, 모델 튜닝, 최종 모델 완성</p>
</blockquote>
<p><strong>B. 프로젝트 사전 기획</strong></p>
<p>(1) 협업 문화</p>
<blockquote>
<ol>
<li>특별한 일을 제외하고는 항상 모여서 의논하면서 Task 진행할 것(Zoom, Discord)</li>
<li>오프라인 모임이 가능할 경우 오프라인 만남을 적극 활용할 것(소통 Skill Up)</li>
<li>논의 사항 및 오류 사항이 있을 경우 즉각 팀원들과 상의할 것</li>
<li>New 아이디어 발생 시 Team Notion에 작성 후 팀원 호출하여 해당 아이디어에 대해 공유할 것</li>
<li>말하지 않아도 각자 중간 진행 상황에 대해 틈틈이 보고할 것</li>
</ol>
</blockquote>
<p>우리팀의 좋았던 점은 별 일 없으면 항상 온라인 소통 플랫폼에 항상 접속해 있는 것이었다. 문제가 생기면 언제든 소통이 가능했고 좋은 아이디어가 생겨도 실시간으로 바로바로 소통이 가능했다. 이 점이 팀 프로젝트 결과물을 뽑아내는 데 중요한 요소였던 것 같다. 다른 팀 보다 늘 다양한 과정과 관점, 다양한 결과물을 완성시켰던 것 같다. EDA 프로젝트부터 Machine Learning 프로젝트, Machine Learning 대회, Deep Learning(CV) 대회까지 동일한 팀원들과 프로젝트를 진행 중인데 변하지 않고 이런 협업 분위기가 지속되고 있어 개인적으로 너무 만족스럽다. 새로 팀에 합류하신 분도 우리의 팀 분위기에 자연스럽게 녹아들어 임해주셔서 너무 감사한 마음이 들었다. </p>
<h3 id="4-프로젝트-수행-결과">4. 프로젝트 수행 결과</h3>
<p>Public - Human Classification(F1 score : 0.9885)</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/3928d75c-99a3-451c-a03e-a964a6b74411/image.png" alt=""></p>
<p>Private - Efficientnet-b4 (F1 score : 0.9061)</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/8fe8af7f-0667-4bd3-92ef-8f71e1acfc7b/image.png" alt=""></p>
<p>우리 팀은 Model 을 사용하여 학습 시키는 방법과 직접 우리가 분류하는 Human Classification 방법 2가지를 사용하였다. 자세한 Code 및 PPT 자료는 <a href="https://github.com/UpstageAILab/upstage-ml-regression-01/tree/main">Github</a> 에서 확인할 수 있다. 프로젝트를 진행하며 작성했던 회의록들도 <a href="https://quickest-asterisk-75d.notion.site/1-e1916b7fb9b94e948381794c3b824036?pvs=23">Notion_FastCampus</a> &amp; <a href="https://www.notion.so/Document-Type-Classification-b01886bae17c4dd9b2d3244429f56fee?pvs=4">Notion_Plus</a>를 통해 확인할 수 있다.</p>
<p><strong>[Human Classification]</strong></p>
<p>데이터를 받고 모델 학습을 진행하기 전에 test data를 확인해보자 하는 의견이 나와 data의 형태를 파악하고자 하나하나 확인하던 과정 중에 &#39;직접 분류해보는 게 어떨까?&#39; 하는 생각이 들었다. 팀원 모두 비슷한 생각을 하고 있었고 우리는 우리가 직접 분류를 해보기로 하였다. 이 결과물을 제출하여 1등 해야겠다! 라는 마음보다는 human 분류를 하였을 때 정확도가 얼마나 나오는지 궁금했다. 그리고 직접 분류한 결과물을 활용하여 모델 학습 시킨 결과와 비교할 때도 유용하게 쓰일 것 같아 일단 분류를 직접하기 시작했다. </p>
<p><strong>[Model 학습]</strong></p>
<p>우리 팀은 다양한 모델을 활용하였다. CV에서 쓸 수 있는 모델은 다 써본 것 같다. 각 모델의 자세한 결과는 Notion 및 PPT에 자세히 기록해 뒀다.
<img src="https://velog.velcdn.com/images/d_yeon819/post/41fe689b-7281-44b9-b237-4292790d906f/image.png" alt=""></p>
<p>위의 모델을 사용하여 학습 된 결과를 Human Classification 한 결과와 비교하여 어떤 class에서 예측을 잘하고 못하는지 확인해보는 과정도 거쳤다.</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/a660c232-9513-4776-986d-d886c0daed4b/image.png" alt=""></p>
<h3 id="5-자체-평가-의견">5. 자체 평가 의견</h3>
<p><strong>A. 잘했던 점</strong></p>
<ul>
<li>다양한 방법으로 Augmentation을 진행하였다.</li>
<li>각자의 다양한 관점을 실시간으로 공유하여 함께 진행하는 프로젝트 분위기를 만들고자 하였다.</li>
</ul>
<p><strong>B. 시도 했으나 잘 되지 않았던 것들</strong></p>
<ul>
<li>강사님의 Feed back 을 통해 이 대회는 Augmentation이 중요한 대회임을 캐치하였다. 하지만 과도한 Augmentation으로 인해 서버가 터지는 이슈가 빈번하게 발생하였고, 모델 학습 시 1 epoch 을 돌리는데 2시간이 넘게 걸렸다. 결국 1500분을 투자하여 약 30 epoch 까지 학습을 시켰지만 결론적으로 서버가 터져 해당 모델을 사용할 수 없었다.</li>
</ul>
<p><strong>C. 아쉬웠던 점들</strong></p>
<ul>
<li>팀원 간의 수준 차이가 상당히 컸다. 나를 비롯한 3명의 사람들은 딥러닝 실전에 경험이 없는 사람이었으며, 나머지 2명은 딥러닝에 경험이 있는 사람들이었다. 그 분들과 대화를 하는 과정에서 의견 교류가 원활하게 되지 않았던 것 같다. <del>아마 그 분들이 엄청 답답했을 것 같다.</del></li>
</ul>
<p><strong>D. 프로젝트를 통해 배운 점 또는 시사점</strong></p>
<ul>
<li>이미지 분류를 어떻게 하는 건지에 대해 대략적으로 알 수 있게 되었다. </li>
<li>딥러닝 시스템이 어떻게 돌아가는 지에 대해 파악할 수 있던 시간이었다.</li>
</ul>
<h3 id="마무리">마무리</h3>
<p>딥러닝은 강의도 처음이고 대회도 처음이고 모든 것이 처음이었던 분야라 사실 우왕좌왕 많이 했던 것 같다. 팀원 중 두 분이 어느 정도 경험이 있어 어깨 너머로 단어 하나하나 접해가며 천천히 배워과는 과정을 겪었던 시간이었던 것 같다. 이제는 어느 분야를 중점적으로 더 파고 들어야 하고 더 공부해야 하는 지 알게 되어 앞으로 그 부분을 중점적으로 더 공부해보고자 한다. 의료 AI 에 관심이 많기에 Computer Vision에 대해 더 열심히 공부해야 할 것 같다는 생각을 하였다. </p>
<p>#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #인공지능개발자 #ML #머신러닝 #경진대회 #딥러닝 #Computer Vision</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[House Price Prediction | 아파트 실거래가 예측 Report]]></title>
            <link>https://velog.io/@d_yeon819/House-Price-Prediction-%EC%95%84%ED%8C%8C%ED%8A%B8-%EC%8B%A4%EA%B1%B0%EB%9E%98%EA%B0%80-%EC%98%88%EC%B8%A1-Report</link>
            <guid>https://velog.io/@d_yeon819/House-Price-Prediction-%EC%95%84%ED%8C%8C%ED%8A%B8-%EC%8B%A4%EA%B1%B0%EB%9E%98%EA%B0%80-%EC%98%88%EC%B8%A1-Report</guid>
            <pubDate>Tue, 30 Jan 2024 09:55:09 GMT</pubDate>
            <description><![CDATA[<pre><code>팀명 : 마이너스(Data Miners &amp; Minus Loss)</code></pre><p><del><em>벌써 몇 번째 프로젝트인지 모르겠다. 정신없이 달리다보니 여기까지 와 버렸다. 앞서 진행된 프로젝트 정리도 채 끝나지 않은 채 이번 Machine Learning 대회 개인 회고를 작성해보고자 한다.</em></del></p>
<h3 id="1-프로젝트-개요">1. 프로젝트 개요</h3>
<p><strong>A. 개요</strong></p>
<p>본 대회는 House Price Prediction 경진대회는 주어진 데이터를 활용하여 서울의 아파트 실거래가를 효과적으로 예측하는 모델을 개발하는 대회이다. </p>
<p>부동산은 의식주에서의 주로 중요한 요소 중 하나인데, 이런 부동산은 아파트 자체의 가치도 중요하고, 주변 요소(강, 공원, 백화점 등)에 의해서도 영향을 받아 시간에 따라 가격이 많이 변동하기도 한다. 개인의 입장에서는 더 싼 가격에 좋은 집을 찾고 싶고, 판매자의 입장에서는 적절한 가격에 집을 판매하기를 원한다. 부동산 실거래가의 예측은 이러한 시세를 예측하여 적정한 가격에 구매와 판매를 도와주게 한다. 정부의 입장에서는 비정상적으로 시세가 이상한 부분을 체크하여 이상 신호를 파악하거나 업거래, 다운거래 등 부정한 거래를 하는 사람들을 잡아낼 수도 있다. </p>
<h4 id="제공된-총-4가지의-데이터셋"><strong>제공된 총 4가지의 데이터셋</strong></h4>
<blockquote>
<ol>
<li>국토교통부에서 제공하는 <strong>아파트 실거래가 데이터</strong>(아파트 위치, 크기, 건축년도, 주변시설 및 교통 편의성 등)</li>
<li>서울시에서 제공하는 <strong>지하철역 데이터</strong></li>
<li>서울시에서 제공하는 <strong>버스정류장 데이터</strong></li>
<li><strong>평가 데이터</strong>(최종 모델 성능에 대한 검증을 위해 사용)<ul>
<li>input : 9,272개의 아파트 특징 및 거래정보</li>
<li>output : 9,272개의 input에 대한 예상 아파트 거래금액</li>
</ul>
</li>
</ol>
</blockquote>
<p>주어진 데이터는 다음과 같았으나 외부 데이터에 대한 제한 사항이 규칙에 없어 다양한 외부 데이터를 끌어다 대회에 응용시킬 수 있었다.</p>
<p><strong>B. 환경</strong></p>
<ul>
<li><p>팀 구성 및 컴퓨팅 환경</p>
<p>  5인 1팀, 인당 RTX 3090ti 서버를 VSCode와 SSH로 연결하여 사용</p>
</li>
<li><p>협업 환경</p>
<p>  Notion, GitHub</p>
</li>
<li><p>의사 소통</p>
<p>  KakaoTalk, Zoom, Slack, Discord</p>
</li>
</ul>
<h3 id="2-프로젝트-팀-구성-및-역할">2. 프로젝트 팀 구성 및 역할</h3>
<ul>
<li><p><strong>팀 구성</strong>
  프로젝트 팀원으로 배정된 인원은 5명 이었으나 한 분은 재직자 신분이어 개인 업무로 인해 프로젝트에 거의 참여하지 못하셨다. 결과적으로 4명이서 프로젝트를 진행하게 되었고 나눠지는 Task 또한 4명으로 나뉘어지게 되었다. </p>
</li>
<li><p><strong>역할</strong></p>
</li>
</ul>
<pre><code>Task 목록은 다음과 같다.
&gt; 데이터 확인 및 수집(Data Verification and Collection)
&gt; 데이터 전처리 및 EDA(Data Preprocessing and Exploratory Data Analysis)
&gt; 모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)
&gt; 결과 정리 및 보고서 작성(Summarization of Results and Report Writing)


모두가 함께 모든 Task 에 참여하긴 했지만 각자 중점적으로 두고 진행했던 Task 는 각기 달랐다. 아래의 표에서 표시되어 보여지겠지만, 나는 데이터 확인 및 수집(Data Verification and Collection)과 모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)에 비중을 크게 두고 프로젝트를 참여하였다. </code></pre><h3 id="3-프로젝트-수행-절차-및-방법">3. 프로젝트 수행 절차 및 방법</h3>
<p><strong>A. 팀 목표 설정</strong></p>
<blockquote>
<p><strong>1주차</strong> : 주어진 Upstage 강의 다 듣기, 사전에 주어진 참고 대회 자료 <a href="https://dacon.io/competitions/official/21265/overview/description">데이콘</a>, <a href="https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques">캐글</a> 활용하여 코드 미리 파악하고 데이터 패턴 파악하기
<strong>2주차</strong> : 외부 데이터 수집하기, 기존 데이터 탐색 및 파악하기(EDA 및 전처리)
<strong>3주차</strong> : 모델링, 모델 튜닝, 최종 모델 완성, 앙상블 전략 사용</p>
</blockquote>
<p><strong>B. 프로젝트 사전 기획</strong></p>
<p>(1) Time-Line 수립
<img src="https://velog.velcdn.com/images/d_yeon819/post/da749300-45d0-4847-9eef-6625f068bed3/image.png" alt=""></p>
<p>(2) 협업 문화</p>
<blockquote>
<ol>
<li>특별한 일을 제외하고는 항상 모여서 의논하면서 Task 진행할 것(Zoom, Discord)</li>
<li>오프라인 모임이 가능할 경우 오프라인 만남을 적극 활용할 것(소통 Skill Up)</li>
<li>논의 사항 및 오류 사항이 있을 경우 즉각 팀원들과 상의할 것</li>
<li>New 아이디어 발생 시 Team Notion에 작성 후 팀원 호출하여 해당 아이디어에 대해 공유할 것</li>
<li>말하지 않아도 각자 중간 진행 상황에 대해 틈틈이 보고할 것</li>
</ol>
</blockquote>
<p>우리팀의 좋았던 점은 별 일 없으면 항상 온라인 소통 플랫폼에 항상 접속해 있는 것이었다. 문제가 생기면 언제든 소통이 가능했고 좋은 아이디어가 생겨도 실시간으로 바로바로 소통이 가능했다. 이 점이 팀 프로젝트 결과물을 뽑아내는 데 중요한 요소였던 것 같다. 다른 팀 보다 늘 다양한 과정과 관점, 다양한 결과물을 완성시켰던 것 같다. EDA 프로젝트부터 Machine Learning 프로젝트, Machine Learning 대회까지 동일한 팀원들과 프로젝트를 진행 중인데 변하지 않고 이런 협업 분위기가 지속되고 있어 개인적으로 너무 만족스럽다. <del>프로젝트를 진행할 수록 여러 Fast Campus 매니저님들과 여러 강사님들께 인정 받고 있어 뿌듯하기도 하다.</del> 이번 프로젝트에서는 &#39;EDA 장인들&#39; 이라는 극찬까지 받기도 했다. </p>
<h3 id="4-프로젝트-수행-결과">4. 프로젝트 수행 결과</h3>
<p>Public 4등(RMSE : 18590.4353), Private 3등(RMSE : 14283.4856)
<img src="https://velog.velcdn.com/images/d_yeon819/post/968e95b8-48a7-4639-b317-63e689975e5e/image.png" alt=""></p>
<p>우리 팀은 Strategy I, Strategy II 2가지의 전략을 이용하였다. 자세한 Code 및 PPT 자료는 <a href="https://github.com/UpstageAILab/upstage-ml-regression-01/tree/main">Github</a> 에서 확인할 수 있다. 프로젝트를 진행하며 작성했던 회의록들도 <a href="https://www.notion.so/House-Price-Prediction-3d53a652e0ab494992aa3d4f0af9d75b?pvs=4">Notion</a> 을 통해 확인할 수 있다.</p>
<p><strong>[Strategy I]</strong></p>
<blockquote>
<p><strong>활용 데이터(외부 데이터)</strong></p>
</blockquote>
<ul>
<li>금리(한국 은행)</li>
<li>GDP(한국 은행)</li>
<li>대통령 득표율</li>
<li>아파트 정보 크롤링(네이버 페이 부동산)</li>
<li>역세권(버스, 지하철)</li>
<li>한강 대교 거리(하버 사인)</li>
<li>학군(서울시 학군 정보)</li>
<li>전세가율(KB 부동산)</li>
</ul>
<blockquote>
<p><strong>사용 모델</strong>
<img src="https://velog.velcdn.com/images/d_yeon819/post/8d879024-79f3-42c6-b123-8d09ba4bdbe8/image.jpg" alt=""></p>
</blockquote>
<p><strong>[Strategy II]</strong></p>
<blockquote>
<p><strong>활용 데이터(외부 데이터)</strong></p>
</blockquote>
<ul>
<li>금리(한국 은행)</li>
</ul>
<blockquote>
<p><strong>사용 모델</strong>
<img src="https://velog.velcdn.com/images/d_yeon819/post/a39adb90-ee82-464a-a4aa-09269ed49e0d/image.jpg" alt=""></p>
</blockquote>
<p>Strategy I은 다양한 외부 데이터를 활용하여 아파트 집 값과 관련이 높은 Feature 들을 생성하여 각각의 Model(CatBoost, XGBoost, LightGBM)을 돌려 Ensemble 하는 전략이었고, Strategy II는 외부 데이터를 다양하게 활용하기보다는 기존의 데이터를 활용하여 새로운 Feature 를 만들어내는 Feature Engineering 에 Focus 를 맞춘 전략이었다. </p>
<p>여기서 Strategy II 부분이 내가 집중적으로 파고 들었던 전략이다. 우선 Categorical 한 아파트명 변수를 Numerical 하게 변경하여 각각의 아파트에 키 값을 부여하였고, 아파트 거래 값이 최근 거래에 영향을 많이 받을 것이라 생각하여 아파트 최근 거래 가격(recent_price), 아파트 최근 거래량(transaction_cnt) 의 feature 를 생성하였다. 그 후 금리 데이터를 추가하여 Modeling(Random Forest, XGBoost, LightGBM)을 하여 Ensemble 하였다. </p>
<p>본 대회의 리더보드에 오류가 있어 오류 발생 전에는 Strategy II 전략이 상대적으로 높은 것으로 나타났으나, 오류 수정 후 Strategy I 의 결과가 더 좋게 나오게 되었다. 리더보드에 오류가 없었다면 Score를 눈으로 확인하며 모델의 성능을 더 좋은 방향으로 변경시키며 수정할 수 있었겠지만 치명적인 오류로 인하여 그러지 못했던 것이 아쉬웠던 부분이었다.</p>
<p>결과적으로 <del>개고생 하며</del> 열심히 수집하고 만들었던 많은 외부 데이터들을 활용한 Strategy I 의 성능이 좋게 평가되어 다행이라고 생각한다. <del>역시 노력은 배신하지 않아ㅋ</del></p>
<h3 id="5-자체-평가-의견">5. 자체 평가 의견</h3>
<p><strong>A. 잘했던 점</strong></p>
<ul>
<li>무작정 Modeling 에 뛰어들지 않고 데이터 확인, 수집에 시간을 많이 투자하여 여러가지 Data를 활용하고자 하였다.</li>
<li>EDA 에 많은 시간을 투자하여 Data를 완벽하게 파악하고자 하였다.</li>
<li>Auto ML을 사용하지 않고 직접 Modeling 을 하여 각 Model 의 장단점을 파악하려고 하였다.</li>
<li>각자의 다양한 관점을 실시간으로 공유하여 함께 진행하는 프로젝트 분위기를 만들고자 하였다.</li>
</ul>
<p><strong>B. 시도 했으나 잘 되지 않았던 것들</strong></p>
<ul>
<li>Data 크롤링에 많은 시간을 투자하였으나 시간이 부족하여 크롤링한 Data를 활용하여 Modeling 을 다양하게 해보지 못하였다.</li>
<li>각자의 Task 가 너무 많아 각자 좋은 관점으로 만들어진 Feature 들을 합쳐서 Modeling 해보지 못하였다. </li>
<li>수집해 온 외부 Data들을 적합하게(Model의 성능에 도움이 되도록) 적용시킬 방법에 대해 구상하지 못했던 것 같다.</li>
</ul>
<p><strong>C. 아쉬웠던 점들</strong></p>
<ul>
<li>대회 주최 측의 오류가 너무나도 많았다. 서버가 끊기는 경우도 많았고, 제일 큰 오류는 리더보드 오류. 대회를 진행하면서도 의문을 품은 사람들이 많았으나 빠르게 개선되지 않았던 점이 아쉬웠다. <del>더 좋은 결과를 낼 수 있었는데...ㅠ</del></li>
</ul>
<p><strong>D. 프로젝트를 통해 배운 점 또는 시사점</strong></p>
<ul>
<li>Auto ML 을 사용하지 않고 Modeling 을 할 수 있게 되었다.</li>
<li>EDA 실력이 한층 더 향상 되었다.</li>
<li>협업 스킬이 더 향상 되었다.</li>
<li>프로젝트 진행에 있어 시간 배분을 잘하는 것이 중요하다는 것을 깨닫게 되었다.</li>
</ul>
<h3 id="마무리">마무리</h3>
<p>정말 좋은 팀을 만났다. 현재까지 고등학교, 대학교, 대학원 때 했던 모든 조별 과제 및 프로젝트를 통틀어 가장 열정적인 팀을 만난 것 같다. 한 명도 빠짐없이 모두가 다 한 마음, 한 뜻인 경우는 이번 팀이 처음이었다. <del>(보통 조에서 한 두명은 무임승차하는 경우가 대부분이었는데... 나 혼자 밤 새가며 발표 자료 만들었던 때가 생각난다..)</del> 또 신기한 건 내가 부족한 부분은 다른 팀원이 강점으로 가지고 있는 부분이고, 다른 팀원이 부족한 부분은 내가 강점으로 가지고 있는 부분이라는 것이다. 서로서로 그런 부분들을 채워줄 수 있는 팀원들인 것이 우리 팀의 최대 강점이다. EDA 프로젝트 때 부터 만나 지금까지 프로젝트를 진행하며 모두가 빠르게 성장하고 있는 모습이 보여 이 시간이 정말 값지고 의미있는 시간이라 생각한다. 이제 ML 은 완전히 끝났고! DL 프로젝트, 대회 열심히 참여해야겠다!! 우리 팀 끝까지 화이팅 하자! </p>
<p>#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #인공지능개발자 #ML #머신러닝 #경진대회</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Upstage] AI 기초 학습 : 딥러닝 | Part 1. Deep Learning]]></title>
            <link>https://velog.io/@d_yeon819/Upstage-AI-%EA%B8%B0%EC%B4%88-%ED%95%99%EC%8A%B5-%EB%94%A5%EB%9F%AC%EB%8B%9D-Part-1.-Deep-Learning</link>
            <guid>https://velog.io/@d_yeon819/Upstage-AI-%EA%B8%B0%EC%B4%88-%ED%95%99%EC%8A%B5-%EB%94%A5%EB%9F%AC%EB%8B%9D-Part-1.-Deep-Learning</guid>
            <pubDate>Tue, 02 Jan 2024 02:22:00 GMT</pubDate>
            <description><![CDATA[<h2 id="deep-learning-basic">[Deep Learning Basic]</h2>
<h3 id="chapter-1-1--1-2-딥러닝의-발전-5단계-1--1단계--5단계">Chapter 1-1 &amp; 1-2. 딥러닝의 발전 5단계 1 : 1단계 ~ 5단계</h3>
<p><strong>딥러닝의 발전 5단계 | DL Development in 5 Steps</strong></p>
<ul>
<li><p>AI/ML/DL 관점에서 크게 5단계로 개발 방법론이 진화(세 단계로 SW 1.0, SW 2.0, SW 3.0 으로도 나뉨)</p>
<p>  <code>[단계 별 특징]</code></p>
<ol>
<li>Rule based programming(SW 1.0 방식)<ol>
<li>목표 달성에 필요한 연산 방법을 사람이 전부 고안</li>
</ol>
</li>
<li>Conventional machine learning(SW 1.5 방식)<ol>
<li>특징 값을 뽑는 방식은 사람이, 특징 값을 판별하는 로직은 기계가 고안</li>
</ol>
</li>
<li>Deep Learning(SW 2.0 방식)<ol>
<li>모든 연산들을 기계가 고안</li>
</ol>
</li>
<li>Pre-training &amp;Fine-tuning<ol>
<li>전체 특징을 구별하는 모델을 고정 시켜둔 후(Pre-training) mapping 부분만 해당 Task에 대한 Data로 미세 조정(Fine-tuning)하는 방식</li>
</ol>
</li>
<li>Big Model &amp; zero/few shot<ol>
<li>in-context learning</li>
<li>입력된 문장을 보고 기계가 스스로 해야 할 Task를 찾아서 진행</li>
</ol>
</li>
</ol>
</li>
</ul>
<h3 id="chapter-1-3--1-4-딥러닝-기술-종류들--학습-방식-데이터-형식-태스크-종류에-의한-구분">Chapter 1-3 &amp; 1-4. 딥러닝 기술 종류들 : 학습 방식, 데이터 형식, 태스크 종류에 의한 구분</h3>
<p><strong>AI 구분법</strong></p>
<ul>
<li>데이터 Data<ul>
<li>정형 데이터 / 이미지, 동영상 / 텍스트 / 음성</li>
</ul>
</li>
<li>학습 Learning<ul>
<li>Supervised Learning / Un-Supervised Learning / Reinforcement Learning</li>
</ul>
</li>
<li>태스크 Task<ul>
<li>인식 / 생성</li>
</ul>
</li>
</ul>
<p>AI = 모델 = 연산의 집합 = 프로그램</p>
<ul>
<li>컴퓨터는 숫자만 이해하므로, 입/출력 모두 숫자</li>
</ul>
<p>학습 방식에 의한 구분</p>
<p><code>교사 학습(Supervised Learning)</code></p>
<ul>
<li>정답이 필요함</li>
<li>라벨링 데이터</li>
<li>직접 피드백</li>
<li>교사 학습으로 학습된 모델은 분류(Classification) 태스크 혹은 회귀(Regression) 태스크를 수행<ul>
<li><code>분류(Classification)</code> : 분류는 기정의된 클래스들 중 입력이 어느 클래스에 해당하는지 맞추는 태스크</li>
<li><code>회귀(Regression)</code>: 회귀는 입력 데이터에 대한 실수 혹은 실수의 집합을 (벡터) 출력으로 맵핑 해주는 (Mapping) 태스크</li>
</ul>
</li>
<li>라벨링 노이즈(Labeling Noise)<ul>
<li>라벨링 결과에 대한 노이즈 = 라벨링 작업에 대해 일관되지 않음의 정도</li>
</ul>
</li>
</ul>
<p><code>비교사 학습(Un-Supervised Learning)</code></p>
<ul>
<li><p>정답이 없음</p>
</li>
<li><p>라벨링 데이터 X</p>
</li>
<li><p>피드백 X</p>
</li>
<li><p>숨은 구조 찾기</p>
</li>
<li><p>비교사 학습으로 학습된 모델은 차원 축소(Dimension Reduction) 혹은 클러스터링 (Clustering) 태스크를 수행</p>
<ul>
<li><p>클러스터링(Clustering)</p>
<ol>
<li>임의의 두 점을 정하고 클래스 부여(클래스의 중심점)</li>
<li>나머지 점들은 가장 가까운 쪽의 클래스 중심점의 클래스 부여</li>
<li>클래스별 중심점 재 계산 후 2번 과정 반복</li>
</ol>
</li>
<li><p>차원 축소(Dimension Reduction)</p>
<ul>
<li><p>N차원 입력을 N&gt;n 차원 출력으로 변경하는 태스크</p>
</li>
<li><p>차원 축소를 하는 이유</p>
<p>  1) 정보 압축: 이미지/비디오/오디오 압축</p>
<p>  2) 정보 시각화: 사람이 눈으로 확인할 수 있는 것은 3차원 까지</p>
<p>  3) 정보 특징: 중요한 특징을 추출하여 분석에 사용</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><code>강화 학습(Re-Inforcement Learning)</code></p>
<ul>
<li>라벨링 데이터 X</li>
<li>지연 피드백</li>
<li>보상 신호(정답과 유사한)</li>
<li>강화학습의 4가지 구성요소 : 에이전트(Agent), 보상(Reward), 행동(Action), 환경(Environment)<ul>
<li>예시<ol>
<li>자전거 배우는 예제<ol>
<li>Agent: 어린 아이</li>
<li>Action: 핸들/브레이크/페달 조정</li>
<li>Environment: 학교 운동장</li>
<li>Reward: 자전거 넘어지지 않고 이동하는 시간</li>
<li>State: 시각/청각/촉각</li>
</ol>
</li>
<li>아타리 비디오 게임 예제<ol>
<li>Agent: 게이머</li>
<li>Action: Up/Down</li>
<li>Environment: 아타리 게임 시스템</li>
<li>Reward: 게임 점수</li>
<li>State: 게임 화면</li>
</ol>
</li>
</ol>
</li>
</ul>
</li>
<li>Model-Free 강화학습에서는 정책/가치 함수에 해당하는 두 가지 AI가 필요</li>
</ul>
<p>학습 방식에 의한 구분</p>
<p><code>정형 데이터(Tabular Data)</code></p>
<ul>
<li>구조화된 정보롤 저장되어 있는 것</li>
<li>딥러닝을 통해서 비정형 데이터를 구조화된 정보로 바꿀 수 있음</li>
</ul>
<p><code>컴퓨터 비전(Computer Vision)</code></p>
<ul>
<li>입력으로 이미지나 동영상 데이터를 받는 AI</li>
</ul>
<p><code>자연어 처리(Natural Language Processing)</code></p>
<ul>
<li>입력으로 텍스트 데이터를 받는 AI</li>
<li>LLM(Large Language Model)</li>
</ul>
<p><code>음성 인식/생성 (Speech Recognition/Generation)</code></p>
<ul>
<li>입/출력으로 음성 데이터가 활용되는 AI<ul>
<li>음성 인식(Speech Recognition) : 입력 = 음성</li>
<li>음성 생성(Speech Generation) : 출력 = 음성</li>
</ul>
</li>
</ul>
<p>태스크 종류에 의한 구분</p>
<p><code>인식 및 생성(Recognition &amp; Generation)</code></p>
<ul>
<li>비정형 데이터와 정보의 입출력 관계에 따라 인식 혹은 생성으로 구분됨<ul>
<li>인식(Recognition) : 비정형 데이터 입력에 정보가 출력</li>
<li>생성(Generation) : 출력이 비정형 데이터인 경우</li>
</ul>
</li>
<li>인식 기술이 어려울까 생성 기술이 어려울까?<ul>
<li>“What I cannot create, I do not understand.” - Richard Feynman</li>
</ul>
</li>
</ul>
<p><code>생성 모델의 역사(History of Generative Models)</code></p>
<ul>
<li>이미지 생성<ul>
<li>2014년의 GAN(Generative Adversarial Network)</li>
<li>2021년도에 공개한 DALL-E<ul>
<li>입력을 텍스트로 받아서 통제력 문제를 해결</li>
</ul>
</li>
<li>2023년도에 Stability AI의 Stable Diffusion이 상업적으로 이용 가능하게 됨</li>
</ul>
</li>
<li>텍스트 생성<ul>
<li>2023년도의 OpenAI가 내놓은 ChatGPT</li>
</ul>
</li>
</ul>
<hr>
<p>[참고 자료]
<a href="https://kdt.fastcampus.co.kr/classroom/234515">https://kdt.fastcampus.co.kr/classroom/234515</a></p>
<p>#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터사이언스 #무료교육 #국비지원</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[딥러닝 기초 | CHAPTER 1. 딥러닝 개론]]></title>
            <link>https://velog.io/@d_yeon819/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B8%B0%EC%B4%88-CHAPTER-1.-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B0%9C%EB%A1%A0-ho5wsv34</link>
            <guid>https://velog.io/@d_yeon819/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B8%B0%EC%B4%88-CHAPTER-1.-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B0%9C%EB%A1%A0-ho5wsv34</guid>
            <pubDate>Mon, 04 Dec 2023 11:25:43 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h3 id="신경망neural-networks">신경망(neural networks)</h3>
</blockquote>
<ul>
<li>인간의 뇌를 모방하여 만든 알고리즘으로, 데이터를 처리하고 패턴을 학습하는 데 사용</li>
<li>여러 층(layer)과 노드(node)로 구성되어 있으며, 각 노드는 입력 데이터를 가중치와 결합하여 출력을 생성함
<img src="https://velog.velcdn.com/images/d_yeon819/post/3e981c0c-b87b-4bef-9b6c-f5696837e0b0/image.png" alt=""></li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/a5694854-5e02-4b82-a70e-f1871b83dfcb/image.png" alt=""></p>
<ul>
<li>선형 회귀구조를 이용해서 하나의 특성을 만들어냄</li>
<li>몇 개의 특성을 만들어내는 지는 설정하기 나름</li>
<li>더 많은 노드, 레이어 얼마든지 생성 가능 -&gt; 레이어가 깊어지면 &quot;딥러닝&quot;</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/e552a598-4bfe-4b54-a535-906e384151af/image.png" alt=""></p>
<ul>
<li>신경망을 깊이 쌓으면 쌓을 수록 어떤 데이터에 대한 정보는 많이 학습됨 -&gt; 많은 특성을 추출 가능 =&gt; &quot;정확한 예측&quot;</li>
<li>주의점: 지나치게 복잡한 모델 사용으로 성능을 끌어올리는 경우 -&gt; &quot;과적합 문제&quot; 발생</li>
<li>수많은 선형 변환이 여러 개로 이어져있더라도 결국 한 번에 가는 선형 변환이 존재함 =&gt; 따라서 &quot;비선형 변환이 필요함&quot;</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/6bbde030-6387-46b9-aca3-e81fcebdbe9a/image.png" alt=""></p>
<h3 id="선형변환-linear-transformation">선형변환 (Linear Transformation)</h3>
<ul>
<li>선형변환은 입력 데이터에 가중치를 곱하고 편향을 더하는 과정</li>
<li>수학적으로는 y = Wx + b 형태로 표현<ul>
<li>여기서 W는 가중치(weight), x는 입력(input), b는 편향(bias)입니다.</li>
</ul>
</li>
<li>선형 변환은 데이터의 크기만 조정하거나 회전시키는 등의 단순한 변환을 수행</li>
</ul>
<h4 id="중요성">[중요성]</h4>
<ul>
<li>선형 변환은 데이터를 다루는 가장 기본적인 방법<ul>
<li>하지만 혼자서는 복잡한 데이터의 패턴이나 특성을 충분히 표현하지 못함</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/75f82722-3898-4736-b48b-0df1d0b6c209/image.png" alt=""></p>
<h3 id="비선형변환-non-linear-transformation">비선형변환 (Non-linear Transformation)</h3>
<p>[Sigmoid 함수]</p>
<ul>
<li>Sigmoid 함수는 대표적인 비선형 활성화 함수</li>
<li>함수 형태는 σ(x) = 1 / (1 + e^(-x))로 표현</li>
<li>이 함수는 입력값을 0과 1 사이의 값으로 변환함, 이는 확률과 같은 형태로 해석될 수 있음</li>
</ul>
<h4 id="중요성-1">[중요성]</h4>
<ul>
<li>비선형 변환은 딥러닝 모델이 복잡한 데이터의 특성을 학습할 수 있게 해줌</li>
<li>Sigmoid 함수와 같은 활성화 함수는 선형 변환된 데이터에 적용되어 모델에 비선형성을 부여함</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/60862be1-7892-4e0d-9acf-c57e22c29759/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/be0dfada-5d99-42d3-81d8-0fd8556e59df/image.png" alt=""></p>
<h3 id="활성화-함수-activation-functions">활성화 함수 (Activation Functions)</h3>
<ul>
<li>딥러닝 모델에서 활성화 함수는 매우 중요한 역할을 함</li>
<li>이 함수들은 인공신경망에서 입력 데이터를 받아 처리한 뒤, 출력을 결정하는 데 사용 </li>
<li>주로 Sigmoid와 ReLU 함수가 널리 사용</li>
</ul>
<h4 id="1-sigmoid-활성화-함수">1. Sigmoid 활성화 함수</h4>
<ul>
<li>Sigmoid 함수는 σ(x) = 1 / (1 + e^(-x))로 정의</li>
<li>이 함수는 모든 입력값을 0과 1 사이의 값으로 변환</li>
</ul>
<h4 id="특징">[특징]</h4>
<ul>
<li>출력이 0과 1 사이로 제한되기 때문에, 이진 분류 문제에서 유용</li>
<li>Sigmoid는 곡선의 형태를 띄기 때문에, 입력값에 따른 출력의 변화가 부드러움</li>
</ul>
<h4 id="단점">[단점]</h4>
<ul>
<li>그라디언트 소실(Vanishing Gradient) 문제가 발생할 수 있음 <ul>
<li>신경망이 깊어질수록 학습이 어려워진다는 것을 의미</li>
</ul>
</li>
<li>출력이 0에 가까울 때와 1에 가까울 때 Gradient가 매우 작아져, 학습 속도가 느려질 수 있음</li>
</ul>
<h4 id="2-relu-rectified-linear-unit-활성화-함수">2. ReLU (Rectified Linear Unit) 활성화 함수</h4>
<ul>
<li>ReLU 함수는 f(x) = max(0, x)로 정의</li>
<li>입력이 0 이상이면 그 입력을 그대로 출력하고, 0 미만이면 0을 출력</li>
</ul>
<h4 id="특징-1">[특징]</h4>
<ul>
<li>ReLU는 간단하고 계산 효율성이 뛰어나 대규모 신경망에서 널리 사용</li>
<li>그라디언트 소실 문제를 상당 부분 해결해주어 깊은 네트워크에서도 효과적으로 학습할 수 있음</li>
</ul>
<h4 id="단점-1">[단점]</h4>
<ul>
<li>&#39;죽은 ReLU&#39; 문제<ul>
<li>즉, 네트워크의 일부 뉴런이 0 이하의 값만 받게 되면, 항상 0만 출력하게 되어 해당 뉴런이 더 이상 학습에 기여하지 못하는 문제가 발생</li>
</ul>
</li>
</ul>
<p>일반적으로, Sigmoid는 출력층에서 이진 분류 문제에 자주 사용, ReLU는 은닉층에서 널리 사용</p>
<blockquote>
<h3 id="가중치-행렬weight-matrix">가중치 행렬(weight matrix)</h3>
</blockquote>
<ul>
<li>신경망에서 입력과 출력 사이의 관계를 결정하는 매개변수. </li>
<li>각 노드의 입력값에 곱해지는 가중치들의 집합으로, 학습 과정에서 최적화됨.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/52522482-b841-41c1-99c9-53d82e868736/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/24b62d83-3ad9-406c-bf0c-890dcd8dff68/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/48bea1a9-b19f-4c22-982a-ce68067039ce/image.png" alt=""></p>
<blockquote>
<h4 id="경사-하강법gradient-descent">경사 하강법(gradient descent)</h4>
</blockquote>
<ul>
<li>최적화 알고리즘의 일종으로, 손실 함수(loss function)의 최소값을 찾기 위해 가중치를 조정함</li>
<li>손실 함수의 기울기(gradient)를 계산하여 오차를 줄이는 방향으로 가중치를 업데이트함</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/e43806cb-f0de-4ad1-a194-9fc0429cc265/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/ac78f141-6f26-4b5f-9958-c3e91b15ebba/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/c8dc104a-100d-4c6a-8d99-58ec3c0586b7/image.png" alt=""></p>
<h3 id="학습률learning-rate">학습률(Learning Rate)</h3>
<ul>
<li>딥러닝에서 매우 중요한 hyperparameter</li>
<li>이는 모델이 데이터로부터 학습하는 속도와 방식을 결정짓는 역할을 함</li>
</ul>
<h4 id="학습률learning-rate이란">학습률(Learning Rate)이란?</h4>
<ul>
<li>학습률은 모델이 학습하는 동안 가중치(weight)를 얼마나 조정할지를 결정하는 값</li>
<li>가중치의 업데이트는 &quot;가중치 = 가중치 - 학습률 * 손실 함수의 기울기&quot;로 계산</li>
<li>즉, 학습률이 크면 가중치 조정이 크고, 학습률이 작으면 가중치 조정이 작음</li>
</ul>
<blockquote>
<h4 id="optimizer의-종류">Optimizer의 종류</h4>
</blockquote>
<p>경사 하강법을 개선한 다양한 알고리즘들이 있습니다. 대표적인 예로는 SGD(Stochastic Gradient Descent), Adam, RMSprop 등이 있으며, 각각의 알고리즘은 특정 상황에서 더 효과적일 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/c4823e60-28ab-4efd-ad8d-67dd4b75c412/image.png" alt=""></p>
<h4 id="sgdstochastic-gradient-descent">SGD(Stochastic Gradient Descent)</h4>
<ul>
<li>작동 방식: 각 단계에서 무작위로 선택된 하나의 데이터 샘플에 대해 Gradient(기울기)를 계산하고, 이를 사용해 모델의 가중치를 업데이트함</li>
<li>장점: 메모리 효율적이며, 대규모 데이터셋에서도 잘 작동함</li>
<li>단점: 수렴 속도가 비교적 느리고, 최적점에 도달하기까지 불안정할 수 있음</li>
</ul>
<h5 id="batch-gdbatch-gradient-descent">Batch GD(Batch Gradient Descent)</h5>
<ul>
<li>작동 방식: 전체 데이터셋을 사용하여 한 번에 그라디언트를 계산함</li>
<li>장점: 안정적인 그라디언트 추정과 수렴을 제공함</li>
<li>단점: 매우 큰 데이터셋에 대해서는 계산 비용이 많이 들고, 메모리 요구량이 높음</li>
</ul>
<h5 id="mini-batch-gd--single-sample-gd">Mini-batch GD / Single sample GD</h5>
<ul>
<li>작동 방식: 데이터셋을 작은 배치로 나누고, 각 배치에 대해 Graident를 계산</li>
<li>장점: SGD와 Batch GD의 장점을 결합하여 더 빠른 수렴과 효율적인 메모리 사용을 가능하게 함</li>
<li>단점: 배치 크기 선택이 중요하며, 잘못된 크기는 성능에 영향을 미칠 수 있음</li>
</ul>
<h4 id="momentum">Momentum</h4>
<ul>
<li>작동 방식: 이전 Gradient의 방향을 고려하여 현재 업데이트에 &#39;관성&#39;을 추가함</li>
<li>장점: 지역 최소값에서 벗어나기 쉽고, 수렴 속도가 빨라짐</li>
<li>단점: 관성 때문에 최적점을 지나칠 수 있으며, 파라미터 조정이 필요함</li>
</ul>
<h4 id="adagrad">AdaGrad</h4>
<ul>
<li>작동 방식: 각 매개변수에 대해 개별적인 학습률을 적용</li>
<li>장점: 간단한 문제에서 잘 작동하며, 희소한 데이터에서 유용</li>
<li>단점: 학습률이 지속적으로 감소하여 장기적으로는 학습이 멈출 수 있음</li>
</ul>
<h5 id="rmsprop">RMSprop</h5>
<ul>
<li>작동 방식: AdaGrad의 단점을 개선하기 위해 과거 모든 Gradient를 똑같이 고려하지 않고, 최근 Gradient에 더 큰 가중치를 둠</li>
<li>장점: 비교적 새로운 데이터에 잘 반응하며, 다양한 종류의 문제에 잘 작동</li>
<li>단점: 여전히 하이퍼파라미터의 조정이 필요함</li>
</ul>
<h4 id="adamadaptive-moment-estimation">Adam(Adaptive Moment Estimation)</h4>
<ul>
<li>작동 방식: Momentum과 RMSprop의 아이디어를 결합하여, 모멘텀과 스케일링된 Gradient 모두를 고려함</li>
<li>장점: 다양한 조건에서 잘 작동하며, 특히 높은 차원의 데이터셋이나 매개변수가 많은 모델에서 효과적임</li>
<li>단점: 상대적으로 많은 메모리를 사용하며, 하이퍼파라미터 조정이 중요함</li>
</ul>
<blockquote>
<h4 id="역전파backpropagation">역전파(backpropagation)</h4>
</blockquote>
<ul>
<li>신경망에서 출력 오차를 입력 층으로 전파하여 가중치를 조정하는 방법</li>
<li>출력층에서 발생한 오차를 역방향으로 전파하며, 각 노드의 가중치를 최적화함</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/22bd49ef-3be6-4805-815f-e65f05e6b1d1/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/5c01c566-9d7e-4d88-bc27-c246181b8e63/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/946ec11e-2230-4e68-91d2-6fad6570868f/image.png" alt=""></p>
<p>[정의]</p>
<ul>
<li>역전파는 딥러닝 모델을 훈련시키는 기본적인 알고리즘으로, 오차를 출력층에서 입력층으로 거슬러 올라가며 전파하는 방식</li>
<li>이 과정에서 각 층의 가중치는 오차에 기여하는 정도에 따라 조정됨</li>
</ul>
<p>[작동 원리]</p>
<ol>
<li>먼저, 신경망은 입력 데이터에 대한 예측을 수행</li>
<li>예측값과 실제값 사이의 오차를 계산</li>
<li>이 오차를 기반으로, 출력층에서 시작하여 각 층의 가중치를 손실 함수의 그라디언트(기울기)에 따라 조정</li>
</ol>
<ul>
<li>이 과정은 신경망이 오차를 최소화하는 방향으로 학습하도록 함</li>
</ul>
<blockquote>
<p>소프트맥스(softmax) </p>
</blockquote>
<ul>
<li>다중 클래스 분류 문제에서 출력 레이어에 주로 사용되는 함수</li>
<li>소프트맥스 함수는 각 클래스에 대한 예측 확률을 계산하여, 가장 높은 확률을 가진 클래스를 모델의 예측으로 선택함</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/3ec45164-4438-4953-ba54-00d900f338bd/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/35429f6c-9735-4887-b1d4-abac7129e943/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/8acf26ff-27da-4173-a511-c5c9587e58c4/image.png" alt=""></p>
<p>[작동 원리]</p>
<ol>
<li>각 클래스에 대한 신경망의 출력(일반적으로 로짓이라고 함)을 받아, 이를 정규화하여 각 클래스에 속할 확률로 변환함</li>
<li>결과적으로, 모든 클래스에 대한 확률의 합이 1이 되도록 함</li>
</ol>
<blockquote>
<p>크로스 엔트로피(cross-entropy) </p>
</blockquote>
<ul>
<li>분류 문제에서 손실 함수로 널리 사용됨</li>
<li>모델의 예측 확률 분포와 실제 레이블의 분포 사이의 차이를 측정함</li>
<li>낮은 크로스 엔트로피 값은 모델의 예측이 정확함을 의미함</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/8f89314f-69be-44a3-b037-e375584e0ae9/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/2d108dcb-8f2a-4d47-bf1d-ed469590704b/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/375a0f72-f290-4516-9d82-86710792d50f/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/d5e0ec25-a3ed-48ab-9c9a-0c70bbaf397e/image.png" alt=""></p>
<blockquote>
<p>역전파 / 소프트맥스 함수 / 크로스 엔트로피 정리</p>
</blockquote>
<ul>
<li>역전파는 신경망이 오차를 줄이는 방향으로 학습하도록 도와줌</li>
<li>소프트맥스 함수는 다중 클래스 분류에서 모델의 출력을 확률로 변환함</li>
<li>크로스 엔트로피 손실은 모델의 예측이 얼마나 실제 레이블과 일치하는지를 측정함</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[딥러닝 기초 | CHAPTER 1. 딥러닝 개론]]></title>
            <link>https://velog.io/@d_yeon819/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B8%B0%EC%B4%88-CHAPTER-1.-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B0%9C%EB%A1%A0</link>
            <guid>https://velog.io/@d_yeon819/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B8%B0%EC%B4%88-CHAPTER-1.-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B0%9C%EB%A1%A0</guid>
            <pubDate>Thu, 23 Nov 2023 11:54:34 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h3 id="인공지능-머신러닝-딥러닝">인공지능, 머신러닝, 딥러닝</h3>
</blockquote>
<h4 id="인공지능">인공지능</h4>
<ul>
<li>인공(Artificial) + 지능(Intelligence) -&gt; AI
  ex) 로봇청소기, Expert system</li>
</ul>
<h4 id="머신러닝">머신러닝</h4>
<ul>
<li>학습(learning)하는 기계(machine) -&gt; 학습 기반
  ex) Decision tree, SVM</li>
</ul>
<h4 id="딥러닝">딥러닝</h4>
<ul>
<li>깊은(deep) 신경망 구조의 머신러닝
  ex) MLP, CNN, RNN, Transformer</li>
</ul>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/a042c74c-41bb-41e7-a66e-8e504f061a25/image.png" alt=""></p>
<blockquote>
<h3 id="학습learning의-개념과-원리">학습(learning)의 개념과 원리</h3>
</blockquote>
<h4 id="머신러닝의-기본-구조">머신러닝의 기본 구조</h4>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/2de16025-208a-438e-84cf-f6decbd9defe/image.png" alt=""></p>
<h4 id="데이터셋-분할split">데이터셋 분할(split)</h4>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/4299380e-35c5-4080-8b68-607ada324125/image.png" alt=""></p>
<ol>
<li>학습을 위해 전체 Data set 에서 80%를 training set으로 학습</li>
<li>학습이 끝나면 model의 성능 평가를 위해 test set 실행
=&gt; 객관적인 모델의 성능 평가 가능</li>
</ol>
<blockquote>
<h3 id="지도학습supervised-learning과-비지도학습unsupervised-learning">지도학습(supervised learning)과 비지도학습(unsupervised learning)</h3>
</blockquote>
<h4 id="지도학습supervised-learning">지도학습(Supervised Learning)</h4>
<ul>
<li><p>Dataset = Data + Label</p>
<ul>
<li>입력 데이터와 해당 데이터에 대한 정답 또는 원하는 출력을 나타내는 &quot;Label&quot;이 함께 제공 </li>
<li>모델은 입력 데이터와 라벨을 사용하여 입력 데이터에서 출력을 예측하고, 예측과 실제 라벨 간의 차이를 최소화하도록 학습됨</li>
<li>대부분의 연구, 산업에서 이용되는 학습법</li>
</ul>
</li>
</ul>
<h4 id="비지도학습unsupervised-learning">비지도학습(Unsupervised Learning)</h4>
<ul>
<li><p>Dataset = Data <del>+ Label</del></p>
<ul>
<li>입력 데이터에 대한 명시적인 라벨 또는 정답이 제공되지 않는 학습 방법</li>
<li>비지도 학습에서 &quot;Label&quot;은 입력 데이터 그룹을 설명하거나 클러스터링(cluster)을 할 때 사용</li>
<li>비용적인 측면에서 가성비가 좋음</li>
<li>K-Means Clustering(군집화)</li>
</ul>
</li>
</ul>
<h4 id="반지도학습semi-supervised-learning">반지도학습(Semi-Supervised Learning)</h4>
<ul>
<li><p>지도학습 + 비지도학습</p>
<ul>
<li>Pseudo-labeling</li>
</ul>
<ol>
<li>초기 지도학습: 가지고 있는 작은 양의 레이블 데이터로 모델을 초기화하고 학습</li>
<li>가상 레이블 생성: 학습된 모델을 사용하여 레이블이 지정되지 않은 추가 데이터(비지도 데이터)에 대한 예측을 수행</li>
<li>가상 레이블을 추가하여 재학습: 가상 레이블과 함께 초기 레이블이 있는 데이터도 함께 사용하여 모델을 조정하고 성능을 개선</li>
<li>반복</li>
</ol>
<ul>
<li>kaggle 이나 많은 competition에서 자주 등장하는 개념(pseudo-labeling을 사용해도 된다는 조항이 있어야 함)</li>
</ul>
</li>
</ul>
<blockquote>
<h3 id="선형회귀linear-regression">선형회귀(linear regression)</h3>
</blockquote>
<h4 id="선형-회귀">선형 회귀</h4>
<ul>
<li><p>Linear + Regression : 선을 그어 + 값을 예측</p>
</li>
<li><p>통계학에서의 Linear Regression 과 딥러닝에서의 Linear Regression</p>
<p>  [ 통계학 ]</p>
<ol>
<li><p>데이터 분석 및 추론을 위해 사용</p>
</li>
<li><p>통계적 선형회귀 모델은 주어진 데이터를 기반으로 독립 변수와 종속 변수 간의 관계를 설명하고, 모수 추정, 가설 검정, 
 신뢰구간 등의 통계적 절차를 사용하여 이런 관계를 분석하는 데 중점을 둠. </p>
</li>
<li><p>모델의 신뢰성과 해석력이 중요함</p>
<p>[ 딥러닝 ]</p>
</li>
<li><p>선형 회귀는 머신 러닝의 일부로, 데이터로부터 예측 모델을 구축하는 데 사용</p>
</li>
<li><p>모델은 입력과 출력 간의 관계를 학습, 최적화 기술을 사용하여 모델의 예측 성능을 최대화하는 데 중점을 둠.</p>
</li>
<li><p>대규모 데이터와 복잡한 모델 아키텍처를 사용하여 성능을 향상 시키는 것이 주요 목표</p>
</li>
</ol>
</li>
</ul>
<h4 id="편향bias">편향(Bias)</h4>
<ul>
<li><p>통계학에서의 Bias 와 딥러닝에서의 Bias</p>
<p>  [ 통계학 ]</p>
<ul>
<li>추정치가 모집단의 실제 값과 얼마나 차이가 있는지를 나타냄.</li>
<li>주로 통계적 추정에서 사용</li>
<li>편향된 추정치는 모집단 parameter를 평균적으로 정확하게 예측하지 못하는 경향이 있음</li>
</ul>
</li>
</ul>
<pre><code>[ 딥러닝 ]
- 뉴럴 네트워크 모델의 일부
- 모델이 데이터를 잘 적합시키기 위한 parameter 중 하나를 나타냄.
- bias는 복잡한 데이터 패턴을 학습하고 적합하게 만들 수 있도록 도와주는 요소
- 딥러닝에서는 bias가 모델의 효율성과 성능 향상에 중요한 역할을 함.
![](https://velog.velcdn.com/images/d_yeon819/post/d52cf5e6-a7ad-459a-879f-0dfdc7a0aba9/image.png)</code></pre><h4 id="선형회귀-입력과-출력">선형회귀 입력과 출력</h4>
<p><img src="https://velog.velcdn.com/images/d_yeon819/post/af0a6b6c-6b67-4f06-aa96-a3f8525bea60/image.png" alt=""></p>
<ul>
<li><p>H(x) = w1x1 + w2x2 + w3x3 + b</p>
</li>
<li><p>선형회귀란?</p>
<ul>
<li>3개의 특성에 각각의 가중치의 곱에 대한 전체 합을 통해 새로운 특성을 생성하는 구조</li>
</ul>
</li>
<li><p>가중치(w)란?</p>
<ul>
<li><p>해당 feature 가 어떤 방향으로 어느 정도 영향을 미치는지 상관관계를 나타내는 지표</p>
<ul>
<li><p>w1 의 경우 x1 이 증가함에 따라 H 가 증가하기 때문에 양수를 나타냄</p>
<ul>
<li>w3 의 경우 x3 가 감소함에 따라 H 가 증가하므로 음수를 나타냄</li>
</ul>
</li>
</ul>
</li>
<li><p>|w| 이 크면 클 수록 x 가 H 에 미치는 영향이 크다고 볼 수 있음</p>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>