<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>yoonsnee_0303.log</title>
        <link>https://velog.io/</link>
        <description>윤쓰네뽀끼</description>
        <lastBuildDate>Mon, 06 Feb 2023 09:13:21 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. yoonsnee_0303.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/yoonsnee_0303" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[인공신경망 ann]]></title>
            <link>https://velog.io/@yoonsnee_0303/%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D-ann</link>
            <guid>https://velog.io/@yoonsnee_0303/%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D-ann</guid>
            <pubDate>Mon, 06 Feb 2023 09:13:21 GMT</pubDate>
            <description><![CDATA[<p>딥 러닝(deep learning)은 다층구조 형태의 신경망을 기반으로 하는 머신 러닝(machine learning)의 한 분야로, 다량의 데이터로부터 높은 수준의 추상화 모델을 구축하고자 하는 기법입니다.</p>
<p>즉, 컴퓨터가 많은 양의 데이터를 이용해 마치 사람처럼 스스로 학습할 수 있게 하기 위해 인공 신경망(ANN: artificial neural network)을 기반으로 구축한 기계 학습 기술로, 인간의 뇌가 작동하는 것과 비슷한 원리라고 할 수 있습니다.</p>
<h2 id="🏷-생물학적-뉴런neuron-신경세포의-구조와-인공신경망">🏷 생물학적 뉴런(neuron, 신경세포)의 구조와 인공신경망</h2>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/e2593ebe-d9ac-4e03-b8f0-e85e2ea2a34a/image.png" alt=""></p>
<ul>
<li>인간의 뇌는 뉴런이라는 신경세포들로 구성됨</li>
<li>수상돌기를 통해 외부 신호(자극)을 받아들이고 신경세포는 신호를 처리하며 시놉스를 통해 다른 신경세포로 전달함.</li>
</ul>
<h2 id="🏷-다층-신경망">🏷 다층 신경망</h2>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/3e58531c-e9a4-4b9f-920d-bcfd7a0f3404/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/f36f891c-d8da-45b2-a323-259e6aeb9bad/image.png" alt=""></p>
<ul>
<li>입력층(input layer):입력변수에 대응되는 노드로 구성, 노드의 수는 입력변수의 개수</li>
<li>은닉층(hidden layer): 입력층으로부터 전달되는 변수값들의 선형결합을 비선형함수(활성화함수)로 처리, 출력층 또는 다른 은닉층에 전달하는 역할</li>
<li>출력층(output layer): 출력변수에 대응되는 노드, 분류모형에서는 클래스의 수 만큼의 출력노드가 생성</li>
<li>활성함수(activation function): 입력노드 혹은 은닉노드의 값에서 그 다음은 은닉층에 있는 노드값을 대응시키는 함수를 말하며 다음의 종류가 있음.
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/aa1f116d-f68a-47d3-80a2-4893cd8d0bf7/image.png" alt=""><ul>
<li>은닉층에서 출력층으로 가는 활성함수는 출력활성함수라고 하며, 분류문제에서는 로지스틱, 회귀문제에서는 선형함수가 사용됨</li>
<li>✅ 신경망학습에서 주의사항: 입력변수의 스케일링, 표준화가 결과에 많은 영향을 미치므로 표준화를 한 후 모형을 학습하기 바람.</li>
</ul>
</li>
</ul>
<h2 id="🏷-퍼셉트론">🏷 퍼셉트론</h2>
<p>퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘입니다. 퍼셉트론은 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사한데, 신경 세포 뉴런의 그림을 먼저 보도록 하겠습니다. 뉴런은 가지돌기에서 신호를 받아들이고, 이 신호가 일정치 이상의 크기를 가지면 축삭돌기를 통해서 신호를 전달합니다.
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/5b991abd-c5d4-47fa-93a7-4e07ed033000/image.png" alt=""></p>
<ul>
<li>x는 입력값을 의미하며, w는 가중치(weight), y는 출력값입니다. 그림 안의 원은 인공 뉴런에 해당됩니다. 실제 신경 세포 뉴런에서의 신호를 전달하는 축삭돌기의 역할을 퍼셉트론에서는 가중치가 대신합니다.</li>
<li>각각의 입력값에는 각각의 가중치가 존재하는데, 이 때 가중치의 값이 크면 클수록 해당 입력 값이 중요하다는 것을 의미합니다.</li>
<li>각 입력값이 가중치와 곱해져서 인공 뉴런에 보내지고, 각 입력값과 그에 해당되는 가중치의 곱의 전체 합이 임계치를 넘으면 종착지에 있는 인공 뉴런은 출력 신호로서 1을 출력하고, 그렇지 않을 경우에는 0을 출력합니다. 이러한 함수를 계단 함수(step function)이라고 합니다.
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/37e06399-ea83-4797-a4b7-a65c4c22c740/image.png" alt="">
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/67d0a395-7961-41a8-891e-0714f79716c0/image.png" alt=""><ul>
<li>위의 식에서 임계치를 좌변으로 넘기고 편향 b(bias)로 표현할 수도 있습니다. <img src="https://velog.velcdn.com/images/yoonsnee_0303/post/1d17f408-bd0c-4308-9713-6c332cea2d2a/image.png" alt=""></li>
</ul>
</li>
</ul>
<p>이렇게 뉴런에서 출력값을 변경시키는 함수를 <strong>활성화 함수</strong>라고 합니다.</p>
<h2 id="🏷-단층-퍼셉트론">🏷 단층 퍼셉트론</h2>
<p>퍼셉트론은 단층 퍼셉트론, 다층 퍼셉트론으로 나뉘는데 단층 퍼셉트론은 한 개의 입력층과 한개의 출력층, 총 두 단계로 이루어져있는 구조를 뜻합니다. 이 때 각 단계를 보통 층(layer)이라고 부릅니다.
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/03bcc401-b653-4fca-8f1b-ad0c2f074d15/image.png" alt="">
이처럼 단층 퍼셉트론은 AND 게이트, NAND 게이트, OR 게이트를 구현할 수 있으나 지금부터 설명할 XOR 게이트는 구현할 수 없습니다.</p>
<h2 id="🏷-다층-퍼셉트론multilayer-perceptron-mlp">🏷 다층 퍼셉트론(MultiLayer Perceptron, MLP)</h2>
<p>XOR 게이트는 기존의 AND, NAND, OR 게이트를 조합하면 만들 수 있습니다. 퍼셉트론 관점에서 말하면 층을 더 쌓으면 만들 수 있습니다. 이처럼 층을 추가한 퍼셉트론을 다층 퍼셉트론이라고 말합니다.
다층 퍼셉트론은 입력층과 출력층 사이에 은닉층(hidden layer)이 존재하는 것을 뜻합니다.
또한 은닉층이 2개 이상인 신경망을 심층 신경망(DNN)이라고 합니다.
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/9146cd3e-c025-4576-a179-7a33a08c879d/image.png" alt=""></p>
<center>- 다층 퍼셉트론</center>



<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/3da4d3a6-825a-4256-a36a-c1a2fc3039d1/image.png" alt=""></p>
<center>- 심층 신경망</center>

<p>지금까지는 OR, AND, XOR 게이트 등. 퍼셉트론이 제대로 된 정답을 출력할 때까지 저자가 직접 가중치를 바꿔보면서 적절한 가중치를 수동으로 찾았습니다. 하지만 이제는 기계가 가중치를 스스로 찾아내도록 자동화시켜야하는데, 이것이 머신 러닝에서 말하는 훈련(training) 또는 학습(learning) 단계에 해당됩니다. 앞서 선형 회귀와 로지스틱 회귀에서 보았듯이 손실 함수(Loss function)와 옵티마이저(Optimizer)를 사용합니다. 그리고 만약 학습을 시키는 인공 신경망이 심층 신경망일 경우에는 이를 심층 신경망을 학습시킨다고 하여, 딥 러닝(Deep Learning)이라고 합니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[plotly와 ppt 연동하기]]></title>
            <link>https://velog.io/@yoonsnee_0303/plotly%EC%99%80-ppt-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@yoonsnee_0303/plotly%EC%99%80-ppt-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0</guid>
            <pubDate>Mon, 06 Feb 2023 09:11:09 GMT</pubDate>
            <description><![CDATA[<p>전체적인 개요는?</p>
<ul>
<li>plotly 홈페이지에서 api 입력받아 코드 작성하기</li>
<li>ppt에 web viewer 설치하여 띄우기</li>
</ul>
<h2 id="🏷-1-plotly">🏷 1. plotly</h2>
<h3 id="📎-1-1plotly-홈페이지-회원가입">📎 1-1.plotly 홈페이지 회원가입</h3>
<p>chart-studio-plotly 링크 접속
<a href="https://chart-studio.plotly.com/feed/#/">https://chart-studio.plotly.com/feed/#/</a> 
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/627fa4de-5b0a-46d7-97bf-20d0e86e15d7/image.png" alt=""></p>
<h3 id="📎-1-2-설정-들어가기">📎 1-2. 설정 들어가기</h3>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/f7293c79-88ca-4bf5-8e34-7ce3e3a716b3/image.png" alt=""></p>
<h3 id="📎-1-3-api-받기">📎 1-3. api 받기</h3>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/b198206b-5ca8-456a-a897-2e3c673c4bb9/image.png" alt=""></p>
<ul>
<li>저 파란색 버튼을 눌러주시면 api 키를 받으실 수 
있습니다!</li>
<li>저는 이미 api가 존재하기 때문에 regenerate라고 뜹니다!  <h3 id="📎-1-4-chart-studio-연동하기">📎 1-4. chart-studio 연동하기</h3>
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/da59c978-7091-4423-83b3-6591ddb62a3e/image.png" alt=""></li>
</ul>
<ul>
<li><p>임포트 : </p>
<pre><code>import chart_studio.tools</code></pre></li>
<li><p>username과 api_key를 활용해 연결</p>
<pre><code>username = &#39;&#39;  # 자신의 username (plotly account를 만들어야 함)
api_key = &#39;&#39;    # 자신의 api key (settings &gt; regenerate key)

chart_studio.tools.set_credentials_file(username=username, api_key=api_key)</code></pre></li>
<li><p>작성한 차트를 upload하는 코드</p>
<pre><code>chart_studio.plotly.plot(fig, filename = &#39;파일이름&#39;, auto_open=True)  # fig: 작성한 차트를 저장한 변수
## 위 코드를 실행하면 새로운 window로 해당 차트의 링크가 열리고, notebook에도 link를 아래에 return해줌</code></pre><blockquote>
<blockquote>
<ul>
<li>저는 fig와 fig_2 모두 업로드 해야했기에, py.plot을 두개 작성했습니다.</li>
</ul>
</blockquote>
</blockquote>
<ul>
<li>🖍 밑에 나오게 되는 url을 잘 기록해주세요!</li>
</ul>
</li>
</ul>
<h2 id="🏷-2-ppt에-web_viewer-설치하기">🏷 2. ppt에 web_viewer 설치하기</h2>
<ul>
<li>web_viewer가 있으면 ppt에 url을 삽입함으로써 해당 홈페이지를 그대로 불러 들여올 수 있게 됩니다.</li>
</ul>
<h3 id="📎-2-1-ppt에서-추가-기능-가져오기를-눌러줍니다">📎 2-1. ppt에서 &#39;추가 기능 가져오기&#39;를 눌러줍니다.</h3>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/b2ff455a-add1-4e5a-9e31-d4e7c99c6c05/image.png" alt=""></p>
<pre><code>                                😎_그렇다면~~_😎</code></pre><h3 id="📎-2-2-web-viwer를-검색한-후-지금-받기를-눌러주시면-됩니다">📎 2-2. web viwer를 검색한 후, &#39;지금 받기&#39;를 눌러주시면 됩니다.</h3>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/389b81d9-356c-44f8-bd11-1750bcc4531b/image.png" alt=""></p>
<h3 id="📎-2-3-url-입력">📎 2-3. url 입력</h3>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/33755833-5c02-42db-8755-8b6dc4628ebf/image.png" alt=""></p>
<ul>
<li>🖍 vscode에서 출력되었던 url을 입력해 줍니다!</li>
<li>반드시.... &#39;https://&#39;를 빼고 입력해주셔야 해요.. &#39;https://&#39;이 친구가 두번 들어가서 오류났던 적이....</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[그래서... 머신러닝이 뭐죠...]]></title>
            <link>https://velog.io/@yoonsnee_0303/%EA%B7%B8%EB%9E%98%EC%84%9C...-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EC%9D%B4-%EB%AD%90%EC%A3%A0</link>
            <guid>https://velog.io/@yoonsnee_0303/%EA%B7%B8%EB%9E%98%EC%84%9C...-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EC%9D%B4-%EB%AD%90%EC%A3%A0</guid>
            <pubDate>Mon, 06 Feb 2023 09:00:34 GMT</pubDate>
            <description><![CDATA[<p>ㅎ..
머신러닝...
아직도 너무 어려운걸요...
해야 할 공부는 많고, 공부해봐도 빙산의 일각인거 같고..
그래도 어쩌겠어요,,, 멈추면 더 모를텐데욥... 
해야지 해야지,,,😫😩😤
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/0b6117d4-705b-4424-b4c6-fb854325f5da/image.png" alt=""></p>
<h1 id="🏷-머신러닝">🏷 머신러닝</h1>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/539f0a43-c84f-4384-afaf-0e1f6dd27eb5/image.png" alt="">
&quot; 인공지능 &gt; 머신러닝 &gt; 딥러닝 &quot; 대략 이렇게 보시면 될텐데요</p>
<p>머신러닝과 그 구성요소인 딥러닝, 신경망은 모두 AI의 세부 하위집합입니다. AI는 의사결정과 예측을 수행하기 위해 데이터를 처리합니다. AI는 머신러닝 알고리즘으로 데이터를 처리할 뿐 아니라 추가 프로그래밍 없이도 데이터를 학습하면서 지능화합니다. 인공지능은 모든 머신러닝 관련 하위집합을 포괄하는 상위집합입니다. 첫 번째 하위집합은 머신러닝이며, 그 안에 딥러닝이 있고 딥러닝 안에는 신경망이 있습니다.</p>
<h3 id="📍-신경망이란">📍 신경망이란?</h3>
<blockquote>
<p>신경망은 인간의 두뇌에서 영감을 얻은 방식으로 데이터를 처리하도록 컴퓨터를 가르치는 인공 지능 방식입니다. 인간의 두뇌와 비슷한 계층 구조로 상호 연결된 노드 또는 뉴런을 사용하는 딥 러닝이라고 불리는 기계 학습 과정의 유형입니다. 신경망은 컴퓨터가 실수에서 배우고 지속적으로 개선하는 데 사용하는 적응형 시스템을 생성합니다. 따라서 인공 신경망은 문서 요약 또는 얼굴 인식과 같은 복잡한 문제를 더 정확하게 해결하려고 합니다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/0eacab1e-e882-4995-be9e-8c91ee345821/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/cd40f891-6045-4782-a9f2-982ca003e621/image.png" alt=""></p>
<ul>
<li>input layer: 입력층</li>
<li>hidden layer: 히든층</li>
<li>output layer: 결과</li>
</ul>
<p>신경망은 이후 페이지에서 한번 더 다뤄보도록 하겠습니다.</p>
<h3 id="📍-딥러닝이란">📍 딥러닝이란?</h3>
<blockquote>
<ul>
<li>딥러닝은 사람에게는 자연스러운 일, 즉 예시를 통해 학습하는 것을 컴퓨터가 수행할 수 있도록 가르치는 머신 러닝 기법입니다. 딥러닝은 무인 자동차에서 활용되는 핵심 기술로, 자동차가 정지 신호를 인식하고 보행자와 가로등을 구별할 수 있도록 합니다. 딥러닝은 전화, 태블릿, TV 및 핸즈프리 스피커와 같은 가전의 음성 제어를 위한 핵심 요소입니다. 최근 딥러닝이 많은 관심을 받고 있습니다. 딥러닝을 통해 이전에는 불가능했던 결과를 도출합니다.</li>
</ul>
</blockquote>
<ul>
<li>딥러닝에서는 컴퓨터 모델이 직접 이미지, 텍스트 또는 사운드로부터 분류 작업 방법을 학습합니다. 딥러닝 모델은 종종 사람의 능력을 넘어서는 최고 수준의 정확도에 도달하고 있습니다. 여러 레이어를 포함하는 신경망 아키텍처와 함께 레이블링된 대단위 데이터를 활용하여 모델이 학습됩니다.</li>
</ul>
<h1 id="🏷-머신러닝의-작동방식">🏷 머신러닝의 작동방식</h1>
<p>: 지도, 비지도, 준지도, 강화</p>
<blockquote>
<p>사용 중인 데이터 세트와 원하는 결과에 따라 각 모델 내에서 하나 이상의 알고리즘 기법을 적용할 수 있습니다. 
머신러닝 알고리즘은 기본적으로 사물 분류, 패턴 발견, 결과 예측, 정보 기반 의사결정 등을 수행하도록 설계됩니다. 
알고리즘은 하나씩 사용할 수도 있고 복잡하고 보다 예측 불가능한 데이터가 포함된 경우에는 정확도를 극대화하기 위해 여러 알고리즘을 결합할 수도 있습니다. </p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/1512b87a-ffe0-4770-b446-4dda9274ae9c/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/9dd3c88d-6fff-4e5a-88f3-b5e7428fc1d9/image.png" alt=""></p>
<h2 id="✏️-지도형-학습이란">✏️ 지도형 학습이란?</h2>
<p>지도 학습은 말 그대로 정답이 있는 데이터를 활용해 데이터를 학습시키는 것입니다. 입력 값(X data)이 주어지면 입력값에 대한 Label(Y data)를 주어 학습시키며 대표적으로 분류, 회귀 문제가 있습니다.
<img src="https://velog.velcdn.com/images/yoonsnee_0303/post/23051bd4-1dbe-4b37-a49e-d196a96bcfdc/image.png" alt=""></p>
<ul>
<li>수많은 고양이와 기린의 사진을 주고 각 사진이 고양이인지 기린인지 하나하나 정답을 알려준 후 어떤 사진을 주었을 때 고양이인지 기린인지 알아맞힐 수 있도록 합니다.</li>
</ul>
<blockquote>
<p>지도학습의 목적은 <strong>분류(classification)와 회귀생성(regression)</strong>입니다. </p>
</blockquote>
<ul>
<li><strong>분류</strong>는 위에서 예로 들었던 고양이와 기린을 구별해내는 것처럼 어떤 데이터를 적절한 유한개의 클래스로 분류하는 것을 의미합니다. 구체적으로, 두 개의 클래스로 분류하는 이진 분류(binary classification)와 셋 이상의 여러 개의 클래스로 분류하는 다중 분류(multiclass classification)로 나뉩니다. </li>
<li><strong>회귀</strong>생성은 데이터의 특징을 기반으로 연속적인 값을 예측하는 것을 말하며 일반적으로 연속적인 숫자(벡터)를 예측하는 데에 사용됩니다. 예를 들어 사람들의 몸무게, 성별, 나이와 같은 데이터로 키를 예측하는 문제가 여기에 해당되죠. 최근 딥러닝을 활용해 전혀 새로운 이미지를 만들거나 목소리를 합성 (Text-to-speech) 하는데 이때 회귀생성이 사용되고 있습니다.</li>
</ul>
<h2 id="✏️-비지도-학습이란">✏️ 비지도 학습이란?</h2>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/4e6336c1-0278-462e-b1b1-2f9122276fad/image.png" alt=""></p>
<ul>
<li>어떤 사진이 고양이고 어떤 사진이 기린인지 알려주지 않더라도 사람들은 노랗고 얼룩무늬가 있고 목이 긴 동물과 그렇지 않은 동물로 구분할 수 있을 것입니다. </li>
</ul>
<blockquote>
<p>이렇게 하나하나 정답을 주지 않더라도 데이터의 특성을 파악하여 비슷한 사진끼리 분류하는 것을 <strong>군집화</strong>라고 합니다. 다시 말해, 비지도학습은 정답이 주어져 있지 않은 데이터의 특성을 학습하여 스스로 패턴을 파악하는 것을 의미합니다. </p>
</blockquote>
<h2 id="✏️-준지도-학습이란">✏️ 준지도 학습이란?</h2>
<blockquote>
<ul>
<li>모든 데이터가 시스템에 입력되기 전에 정형화되고 레이블이 지정되어 있다면 더할 나위 없이 완벽할 것입니다. 그러나 실제에서는 이러한 일이 불가능하기 때문에, 대량의 원시 비정형 데이터를 처리해야 하는 경우 준지도 학습은 유효한 해결책이 될 수 있습니다.</li>
</ul>
</blockquote>
<ul>
<li>이 모델은 소량의 레이블이 지정된 데이터를 입력해 레이블이 없는 데이터 세트를 증강합니다. 이 모델의 핵심은 레이블이 지정된 데이터를 통해 시스템이 학습을 시작하게 하며, 학습 속도와 정확성을 상당한 수준으로 개선하도록 하는 것입니다. 준지도 학습 알고리즘은 레이블이 지정된 데이터를 분석해 레이블이 없는 데이터에 적용 가능한 상관관계가 있는 속성을 찾도록 머신을 훈련합니다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/8d0958eb-326a-4195-bd29-80cd5b36fe27/image.png" alt=""></p>
<h2 id="✏️-강화-학습이란">✏️ 강화 학습이란?</h2>
<blockquote>
<ul>
<li>강화학습의 핵심은 일단 해보는 것입니다.</li>
</ul>
</blockquote>
<ul>
<li>강화(Reinforcement)는 시행착오(Trial and Error)를 통해 학습하는 방법 중 하나를 의미합니다. 이러한 강화를 바탕으로 강화학습은 실수와 보상을 통해 학습을 하여 목표를 찾아가는 알고리즘입니다. 기존의 신경망들이 라벨(정답)이 있는 데이터를 통해서 가중치와 편향을 학습하는 것과 비슷하게 보상(Reward)이라는 개념을 사용하여 가중치와 편향을 학습하는 것입니다. 목적은 최적의 행동양식 또는 정책을 학습하는 것입니다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/b4d4bbdb-b692-4115-ab6d-c8aa1193db94/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[plotly_시각화 툴]]></title>
            <link>https://velog.io/@yoonsnee_0303/plotly%EC%8B%9C%EA%B0%81%ED%99%94-%ED%88%B4</link>
            <guid>https://velog.io/@yoonsnee_0303/plotly%EC%8B%9C%EA%B0%81%ED%99%94-%ED%88%B4</guid>
            <pubDate>Mon, 06 Feb 2023 06:09:31 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/b786d228-476b-451e-ae6f-ab1fb234f13c/image.png" alt="">
출처: <a href="https://data101.oopy.io/plolty-tutorial-guide-in-korean">https://data101.oopy.io/plolty-tutorial-guide-in-korean</a> </p>
<h4 id="px와-go">px와 go</h4>
<p>fig = go.Figure() : go를 통해 그래프를 하나하나 설정하며 제작
fig = px.scatter() : px를 통해 템플릿으로 그래프를 빠르게 제작</p>
<h4 id="설치">설치</h4>
<pre><code>pip install plotly # 설치</code></pre><pre><code>pip install plotly --upgrade # 업데이트</code></pre><h4 id="그래프-종류">그래프 종류</h4>
<blockquote>
<ol>
<li>Bar graph</li>
<li>Scatter Plot<blockquote>
<p>a. Dot Plot
b. Bubble Chart</p>
</blockquote>
</li>
<li>Line chart</li>
<li>Pie graph<blockquote>
<p>a. Treemap
b. Sunburst Chart</p>
</blockquote>
</li>
<li>Statistical Charts<blockquote>
<p>a. Box Plot
b. Strip Plot
c. Violin Plot
d. Histogram</p>
</blockquote>
</li>
</ol>
</blockquote>
<h4 id="-chart-studio">* chart studio</h4>
<p>: plotly로 시각화한 차트를 chart studio에 upload</p>
<pre><code>pip install chart_studio로 설치!</code></pre><ul>
<li><p>username과 api_key를 활용해 연결</p>
<pre><code>import chart_studio

username = &#39;&#39;  # 자신의 username (plotly account를 만들어야 함)
api_key = &#39;&#39;    # 자신의 api key (settings &gt; regenerate key)

chart_studio.tools.set_credentials_file(username=username, api_key=api_key)</code></pre></li>
<li><p>작성한 차트를 upload하는 코드</p>
<pre><code>chart_studio.plotly.plot(fig, filename = &#39;파일이름&#39;, auto_open=True)  # fig: 작성한 차트를 저장한 변수
## 위 코드를 실행하면 새로운 window로 해당 차트의 링크가 열리고, notebook에도 link를 아래에 return해줌</code></pre></li>
</ul>
<h4 id="기본으로-제공되는-데이터-가져오기">기본으로 제공되는 데이터 가져오기</h4>
<pre><code>import plotly.express as px
bills_df = px.data.tips()  # plotly express에서 제공되는 기본 data 사용
bills_df.head()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/8e50f616-d817-4ee8-ae1e-1f1a3923d88b/image.png" alt=""></p>
<h1 id="✏️-1-bar-graph">✏️ 1. Bar graph</h1>
<h3 id="1-1-daily-average-bills-per-sex">1-1. daily average bills per sex</h3>
<pre><code> fig = px.bar(bills_df.groupby([&#39;day&#39;, &#39;sex&#39;])[[&#39;total_bill&#39;]].mean().reset_index(),
             x=&#39;day&#39;, y=&#39;total_bill&#39;, color=&#39;sex&#39;,
             title=&#39;Average Bills per Day&#39;, category_orders={&#39;day&#39;:[&#39;Thur&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;]},
             color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/b670e5fb-30c2-4082-935a-7290ff8363d4/image.png" alt=""></p>
<ul>
<li>color로 구분을 넣으면 default로 누적 그래프 형태로 시각화됨</li>
</ul>
<h3 id="1-2-daily-average-bills-per-sex">1-2. daily average bills per sex</h3>
<pre><code> fig = px.bar(bills_df.groupby([&#39;day&#39;, &#39;sex&#39;])[[&#39;total_bill&#39;]].mean().reset_index(),
             x=&#39;day&#39;, y=&#39;total_bill&#39;, color=&#39;sex&#39;, height=400, 
             title=&#39;Average Bills per Day&#39;, category_orders={&#39;day&#39;:[&#39;Thur&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;]},
             color_discrete_sequence=px.colors.qualitative.Pastel,
             barmode=&#39;group&#39;)  # 양 옆으로 놓이는 구조  # barmode=&#39;stack&#39;라고 하면 누적 (dafault setting)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/0e9b44c4-8cb5-493d-b8f0-fc7f04d22797/image.png" alt=""></p>
<ul>
<li>barmode=&#39;group&#39; 옵션을 추가해주면 그룹별 값이 위아래 대신 양옆으로 배치됨</li>
<li>height 옵션으로 크기를 지정해주는 것도 가능 (+. width 옵션도 가능)</li>
</ul>
<h3 id="1-3-daily-total-bills-per-sex">1-3. daily total bills per sex</h3>
<pre><code> fig = px.bar(bills_df, x=&#39;day&#39;, y=&#39;total_bill&#39;, color=&#39;sex&#39;,
             title=&#39;Total Bills per Day&#39;, category_orders={&#39;day&#39;:[&#39;Thur&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;]},
             color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/4ffbf4b1-2874-422f-bf67-6f7c511a820e/image.png" alt=""></p>
<h3 id="1-4-category별로-영역을-나누어-그리기">1-4. category별로 영역을 나누어 그리기</h3>
<pre><code> fig = px.bar(bills_df, x=&#39;day&#39;, y=&#39;total_bill&#39;, color=&#39;smoker&#39;, barmode=&#39;group&#39;, facet_col=&#39;sex&#39;,
             category_orders={&#39;day&#39;:[&#39;Thur&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;]},
             color_discrete_sequence=px.colors.qualitative.Safe, template=&#39;plotly&#39;)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/f7f5fabc-1e34-41da-a140-022132c4f162/image.png" alt=""></p>
<ul>
<li>facet_col 옵션을 통해 특정 그룹별로 영역을 나눠서 시각화할 수 있다<ul>
<li>template 옵션을 통해 각 그래프별 template을 별도로 지정할 수도 있다</li>
</ul>
</li>
</ul>
<h1 id="✏️-2-scatter-plot">✏️ 2. Scatter Plot</h1>
<pre><code>iris_df = px.data.iris()
iris_df.head()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/d3aff077-a6de-4eb8-8970-872ef06f93fd/image.png" alt=""></p>
<h3 id="2-1-기본-scatter-plot">2-1. 기본 scatter plot</h3>
<pre><code> fig = px.scatter(iris_df, x=&#39;sepal_width&#39;, y=&#39;sepal_length&#39;, color=&#39;species&#39;,
                 color_discrete_sequence=px.colors.qualitative.Safe)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/35513e35-f905-41e6-89cd-12453d144623/image.png" alt=""></p>
<h3 id="2-2-trendline을-포함한-scatter-plot">2-2. trendline을 포함한 scatter plot</h3>
<pre><code> fig = px.scatter(bills_df, x=&#39;total_bill&#39;, y=&#39;tip&#39;, trendline=&#39;ols&#39;,
                 color_discrete_sequence=px.colors.qualitative.Pastel1,
                 trendline_color_override=&#39;gold&#39;)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/e54337be-aef3-4035-a255-9799f20ed658/image.png" alt=""></p>
<ul>
<li>trendline=&#39;ols&#39; 옵션을 통해 선형회귀선을 함께 시각화</li>
</ul>
<h1 id="✏️-3-dot-plot">✏️ 3. Dot Plot</h1>
<p>데이터 가져오기</p>
<pre><code>gapminder_df = px.data.gapminder()
gapminder_df.head()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/208a59ca-d50e-4837-990c-a1b516d814fc/image.png" alt=""></p>
<pre><code>fig = px.scatter(gapminder_df.query(&quot;continent==&#39;Americas&#39;&quot;), x=&#39;lifeExp&#39;, y=&#39;country&#39;,
                color=&#39;year&#39;,
                color_continuous_scale=&#39;Burgyl&#39;)
fig.show()</code></pre><h1 id="✏️-4-bubble-chart">✏️ 4. Bubble chart</h1>
<pre><code>fig = px.scatter(gapminder_df.query(&quot;year == 2007&quot;), 
                 x=&#39;gdpPercap&#39;, y=&#39;lifeExp&#39;, size=&#39;pop&#39;, color=&#39;continent&#39;,
                 hover_name=&#39;country&#39;)
 fig.show()
</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/8247f715-1f2d-4a3a-b111-53ac65fc3931/image.png" alt=""></p>
<h1 id="✏️-5-line-chart">✏️ 5. Line Chart</h1>
<pre><code>fig = px.line(gapminder_df.query(&quot;continent == &#39;Oceania&#39;&quot;), 
              x=&#39;year&#39;, y=&#39;lifeExp&#39;, color=&#39;country&#39;, symbol=&#39;country&#39;,
              color_discrete_sequence=px.colors.qualitative.Pastel1)
fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/d6cc1045-4519-45ca-b7d8-cde3b157bb1b/image.png" alt=""></p>
<h1 id="✏️-6-pie-graph">✏️ 6. Pie Graph</h1>
<pre><code># 2007년 gapminder 수치 중, Asia 지역의 국가별 population 비중을 시각화

temp_df = gapminder_df.query(&quot;year == 2007&quot;).query(&quot;continent == &#39;Asia&#39;&quot;)
# population이 가장 많은 top 15 국가를 제외하고는 다 &#39;Other countries&#39;로 처리
temp_df.sort_values(by=&#39;pop&#39;, ascending=False, inplace=True)
temp_df.iloc[15:, 0] = &#39;Other countries&#39;

fig = px.pie(temp_df, values=&#39;pop&#39;, names=&#39;country&#39;,
             color_discrete_sequence=px.colors.qualitative.Antique)
fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/5e58e62f-5cbe-4b3d-9d7a-3040778d6944/image.png" alt=""></p>
<h1 id="✏️-7-treemap">✏️ 7. Treemap</h1>
<pre><code>temp_df = gapminder_df.query(&quot;year == 2007&quot;)
fig = px.treemap(temp_df, path=[px.Constant(&#39;world&#39;), &#39;continent&#39;, &#39;country&#39;], 
                values=&#39;pop&#39;, color=&#39;lifeExp&#39;, color_continuous_scale=&#39;RdBu&#39;,
                color_continuous_midpoint=np.average(temp_df[&#39;lifeExp&#39;], weights=temp_df[&#39;pop&#39;]))

fig.update_layout(margin = dict(t=50, l=25, r=25, b=25))
fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/978af75c-2244-4753-bbbb-c527b9e83610/image.png" alt=""></p>
<h1 id="✏️-8-sunburst-chart">✏️ 8. Sunburst Chart</h1>
<pre><code>fig = px.sunburst(bills_df, path=[&#39;day&#39;, &#39;time&#39;, &#39;sex&#39;], values=&#39;tip&#39;,
                 color=&#39;time&#39;, color_discrete_sequence=px.colors.qualitative.Pastel)
fig.show()
</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/a1a0d816-6dd8-4f32-960a-211d2ebeb22d/image.png" alt=""></p>
<h1 id="✏️-9-statistical-charts">✏️ 9. Statistical Charts</h1>
<h3 id="9-1-기본-box-plot">9-1. 기본 box plot</h3>
<pre><code> fig = px.box(bills_df, x=&#39;sex&#39;, y=&#39;total_bill&#39;, color=&#39;smoker&#39;, 
             color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/7197b604-2fba-4ab3-91e6-4405b41f79d8/image.png" alt=""></p>
<h3 id="9-2-각-point를-함께-시각화">9-2. 각 point를 함께 시각화</h3>
<pre><code> fig = px.box(bills_df, x=&#39;sex&#39;, y=&#39;total_bill&#39;, color=&#39;smoker&#39;, points=&#39;all&#39;,
             color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/1cdb54af-190c-4eaa-b3c9-e13abaa94961/image.png" alt=""></p>
<h1 id="✏️-10-strip-plot">✏️ 10. Strip Plot</h1>
<h3 id="10-1-기본-strip-plot">10-1. 기본 strip plot</h3>
<pre><code>fig = px.strip(bills_df, x=&#39;sex&#39;, y=&#39;total_bill&#39;, color=&#39;smoker&#39;, 
             color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/7f51ec55-5e21-4198-aafb-53596975303c/image.png" alt=""></p>
<h3 id="10-2-category별로-세분화해-시각화">10-2. category별로 세분화해 시각화</h3>
<pre><code> fig = px.strip(bills_df, x=&#39;total_bill&#39;, y=&#39;time&#39;, color=&#39;sex&#39;, facet_col=&#39;day&#39;, 
             category_orders={&#39;day&#39;:[&#39;Thur&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;]},
             color_discrete_sequence=px.colors.qualitative.Safe, template=&#39;plotly&#39;)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/5d277437-999d-4779-8243-7e89f310b5e3/image.png" alt=""></p>
<h1 id="✏️-11-violin-plot">✏️ 11. Violin Plot</h1>
<h3 id="11-1-violin-plot">11-1. violin plot</h3>
<pre><code> fig = px.violin(bills_df, x=&#39;sex&#39;, y=&#39;total_bill&#39;, color=&#39;smoker&#39;,
                 color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/0ea9b93a-9f65-43a8-9b7d-44d8807c909e/image.png" alt=""></p>
<h3 id="11-2-box-points-옵션-지정">11-2. box, points 옵션 지정</h3>
<pre><code> fig = px.violin(bills_df, y=&#39;total_bill&#39;, color=&#39;sex&#39;, box=True, points=&#39;all&#39;,
                 color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/b45c646c-658b-462a-b669-204661265fe3/image.png" alt=""></p>
<h1 id="✏️-12-histogram">✏️ 12. Histogram</h1>
<h3 id="12-1-기본-histogram">12-1. 기본 histogram</h3>
<pre><code> fig = px.histogram(bills_df, x=&#39;total_bill&#39;, nbins=10)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/ae8aa5b8-5b46-40c4-9c56-008f5f829861/image.png" alt=""></p>
<ul>
<li>nbis 옵션으로 number of bins를 조절</li>
</ul>
<h3 id="12-2-categorical-data를-넣으면-count-plot처럼-적용">12-2. categorical data를 넣으면 count plot처럼 적용</h3>
<pre><code> fig = px.histogram(bills_df, x=&#39;day&#39;, category_orders={&#39;day&#39;:[&#39;Thur&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;]})
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/48b52c61-1295-4d79-bf2f-b7fd1de08828/image.png" alt=""></p>
<h3 id="12-3-histogram과-각-값의-분포를-함께-시각화">12-3. histogram과 각 값의 분포를 함께 시각화</h3>
<pre><code> fig = px.histogram(bills_df, x=&#39;total_bill&#39;, y=&#39;tip&#39;, color=&#39;sex&#39;, marginal=&#39;box&#39;,
                 color_discrete_sequence=px.colors.qualitative.Pastel)
 fig.show()</code></pre><p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/40483b1d-fe8a-4188-9413-78d70d11073d/image.png" alt=""></p>
<ul>
<li>marginal=&#39;box&#39; 옵션을 추가하면 각 값의 분포를 box plot으로 함께 시각화해줌
(marginal: box, violin, rug 중에 선택 가능)</li>
</ul>
<p>[참조] <a href="https://chaelist.github.io/docs/visualization/plotly/">https://chaelist.github.io/docs/visualization/plotly/</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[tensor]]></title>
            <link>https://velog.io/@yoonsnee_0303/tensor</link>
            <guid>https://velog.io/@yoonsnee_0303/tensor</guid>
            <pubDate>Mon, 06 Feb 2023 04:46:34 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yoonsnee_0303/post/45a24274-c639-4c18-8ae4-e963c3357a82/image.png" alt=""></p>
<ul>
<li>다차원 배열로 Numpy 배열로 부터 시작함</li>
<li>Rank, Shape, Type 3가지 구성요소가 있음</li>
</ul>
<h2 id="rank">Rank</h2>
<p>Array의 차원(Dimension)에 해당함</p>
<p>0 Rank : 스칼라 텐서, 0차원 텐서, ex. 3
1 Rank : 1차원 벡터, ex. [1, 2, 3]
2 Rank : 2차원 벡터, 행렬(Matrix)과 같음, ex. [[1, 2], [1, 2]]
3 Rank : 3차원 벡터, ex. [[[1, 2], [1, 2]], [[1, 2], [1, 2]]]</p>
<h2 id="shape">Shape</h2>
<p>몇 개의 행과 열을 갖는지를 의미함</p>
<p>3은 shape [] 으로 표현됨
[1, 2, 3]은 shape [3] 으로 표현됨
[[1, 2, 3], [4, 5, 6]]은 shape[2, 3] 으로 표현됨
[[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]]은 shape[2, 2, 3] 으로 표현됨</p>
<h2 id="type">Type</h2>
<p>텐서 값의 자료형</p>
<p>[1, 2, 3] 은 int 형
[1.0, 2.0, 3.0] 은 float 형
[[1, 2, 3], [4.1, 5.5, 6.0]]은 float 형
ex. tf.float32(32bit float 형), tf.float64(64bit float 형), tf.int8(8bit integer 형), tf.int16(16bit integer 형), tf.int32(32bit integer 형),..</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Pytorch]]></title>
            <link>https://velog.io/@yoonsnee_0303/Pytorch</link>
            <guid>https://velog.io/@yoonsnee_0303/Pytorch</guid>
            <pubDate>Thu, 02 Feb 2023 05:21:39 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Tensorflow]]></title>
            <link>https://velog.io/@yoonsnee_0303/Tensorflow</link>
            <guid>https://velog.io/@yoonsnee_0303/Tensorflow</guid>
            <pubDate>Thu, 02 Feb 2023 05:21:18 GMT</pubDate>
        </item>
    </channel>
</rss>