<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Daily training log</title>
    <link>https://learning-sarah.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 12 Aug 2026 22:15:47 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Kim Sara</managingEditor>
    <image>
      <title>Daily training log</title>
      <url>https://tistory1.daumcdn.net/tistory/3185290/attach/322bb21c252e476c8033189ce7eb00a8</url>
      <link>https://learning-sarah.tistory.com</link>
    </image>
    <item>
      <title>Scene Graph Generation</title>
      <link>https://learning-sarah.tistory.com/79</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Visual scene understanding&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 Detection, Segmentation은 Object에 초점을 맞춤 =&amp;gt; Relation을 캡처하기에는 어려움&lt;/li&gt;
&lt;li&gt;Scene Graph로 Relation 정보를 모델링해서 VQA, Captioning, Image grounded dialog 등에 응용할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBvKvS/btsItXGWbM6/QKkkSRjFO7SG6deQNwcSl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBvKvS/btsItXGWbM6/QKkkSRjFO7SG6deQNwcSl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBvKvS/btsItXGWbM6/QKkkSRjFO7SG6deQNwcSl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBvKvS%2FbtsItXGWbM6%2FQKkkSRjFO7SG6deQNwcSl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUffCZ/btsItPPLvAK/PKfpOqlC3ts1lE2v7uEomK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUffCZ/btsItPPLvAK/PKfpOqlC3ts1lE2v7uEomK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUffCZ/btsItPPLvAK/PKfpOqlC3ts1lE2v7uEomK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUffCZ%2FbtsItPPLvAK%2FPKfpOqlC3ts1lE2v7uEomK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Definition&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;세가지 요소가 있음 - 주어, 동사, 목적어 찾기&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 Object instance 있는지 - Girl, Background 등&lt;/li&gt;
&lt;li&gt;Attribute - Object가 어떤 특성을 가지고 있는지&lt;/li&gt;
&lt;li&gt;Relation : Object 사이의 관계 - Girl이 테니스 라켓을 잡고 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dZWtVl/btsItWOQh5T/ysAPzQ2GcgRTrHfcLitkk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dZWtVl/btsItWOQh5T/ysAPzQ2GcgRTrHfcLitkk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dZWtVl/btsItWOQh5T/ysAPzQ2GcgRTrHfcLitkk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdZWtVl%2FbtsItWOQh5T%2FysAPzQ2GcgRTrHfcLitkk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qgGOw/btsItlhdIf8/avGlrxOwbERz3aYT7mkMOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qgGOw/btsItlhdIf8/avGlrxOwbERz3aYT7mkMOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qgGOw/btsItlhdIf8/avGlrxOwbERz3aYT7mkMOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqgGOw%2FbtsItlhdIf8%2FavGlrxOwbERz3aYT7mkMOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Edge는 O x R x O로 정의함&lt;/li&gt;
&lt;li&gt;일단 O를 찾은 다음에, O끼리 다 연결한 다음에 pruning 하는 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KMjuv/btsIvxNyhkP/kLc0BzH6O0UPtvMTQZRMak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KMjuv/btsIvxNyhkP/kLc0BzH6O0UPtvMTQZRMak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KMjuv/btsIvxNyhkP/kLc0BzH6O0UPtvMTQZRMak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKMjuv%2FbtsIvxNyhkP%2FkLc0BzH6O0UPtvMTQZRMak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;I : 이미지&lt;/li&gt;
&lt;li&gt;X : Node =&amp;gt; 개와 서핑보드가 있는 바운딩 박스&lt;/li&gt;
&lt;li&gt;Y tilde : Dog ride surfboard 가 GT, 예측값이 Y tilde&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSBc1Y/btsIuQG7U0v/bmEiY2maKdrxbCMQlimB91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSBc1Y/btsIuQG7U0v/bmEiY2maKdrxbCMQlimB91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSBc1Y/btsIuQG7U0v/bmEiY2maKdrxbCMQlimB91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSBc1Y%2FbtsIuQG7U0v%2FbmEiY2maKdrxbCMQlimB91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4JyOP/btsIt7vO3R3/qc0wzU2k7VJrWXVST0NDP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4JyOP/btsIt7vO3R3/qc0wzU2k7VJrWXVST0NDP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4JyOP/btsIt7vO3R3/qc0wzU2k7VJrWXVST0NDP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4JyOP%2FbtsIt7vO3R3%2Fqc0wzU2k7VJrWXVST0NDP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qKvj9/btsIuF6LsZt/akX6uEeUuon52tdNqILcYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qKvj9/btsIuF6LsZt/akX6uEeUuon52tdNqILcYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qKvj9/btsIuF6LsZt/akX6uEeUuon52tdNqILcYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqKvj9%2FbtsIuF6LsZt%2FakX6uEeUuon52tdNqILcYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Bounding Box를 찾고, Feature (X)를 가짐&lt;/li&gt;
&lt;li&gt;X =&amp;gt; Z는 Object Classification&lt;/li&gt;
&lt;li&gt;X =&amp;gt; Y tilde, 두 Pair 사이의 Feature를 얻으려고 함, Class 간의 관계를 사용함&lt;/li&gt;
&lt;li&gt;이미지 자체에서 Y tilde를 뽑아내는 경우도 있음 (RoIAlign 과정)&lt;/li&gt;
&lt;li&gt;Loss는 Cross Entropy 사용함&amp;nbsp;&lt;/li&gt;
&lt;li&gt;크게 세가지 과정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Feature Extraction&lt;/li&gt;
&lt;li&gt;Contextualization : Y tilde를 찾아내는 과정&lt;/li&gt;
&lt;li&gt;Graph construction : 그래프를 만들어내는 과정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Approaches of SGG&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Bottom-Up : BBOX를 먼저 찾고, Relation을 찾아서 Graph 를 얻음&lt;/li&gt;
&lt;li&gt;Top-Down : BBOX와 Relation을 동시에 찾음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qMKTB/btsIu2tRfWB/xNkvMt5FejXE58LTh5fhW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qMKTB/btsIu2tRfWB/xNkvMt5FejXE58LTh5fhW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qMKTB/btsIu2tRfWB/xNkvMt5FejXE58LTh5fhW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqMKTB%2FbtsIu2tRfWB%2FxNkvMt5FejXE58LTh5fhW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Challenges in SGG&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 모델을 써서 SGG Modeling을 할 것인가&lt;/li&gt;
&lt;li&gt;어떻게 Language 등의 Prior을 사용할 것인가&lt;/li&gt;
&lt;li&gt;데이터셋 자체에 내재되어 있는 Long-tailed distribution&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fmv58/btsIvOVWTWM/bVPW5mSEXiDQNsawL1kqK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fmv58/btsIvOVWTWM/bVPW5mSEXiDQNsawL1kqK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fmv58/btsIvOVWTWM/bVPW5mSEXiDQNsawL1kqK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFmv58%2FbtsIvOVWTWM%2FbVPW5mSEXiDQNsawL1kqK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Graph R-CNN 논문 리뷰&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;Graph R-CNN for Scene Graph Generation&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buX0qk/btsIuwa8pus/GU6ap7nVwcZxoqbJ5uIy51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buX0qk/btsIuwa8pus/GU6ap7nVwcZxoqbJ5uIy51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buX0qk/btsIuwa8pus/GU6ap7nVwcZxoqbJ5uIy51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuX0qk%2FbtsIuwa8pus%2FGU6ap7nVwcZxoqbJ5uIy51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/begpUi/btsIt8arKQM/Us3xfcvyJxO79dirQFTKTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/begpUi/btsIt8arKQM/Us3xfcvyJxO79dirQFTKTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/begpUi/btsIt8arKQM/Us3xfcvyJxO79dirQFTKTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbegpUi%2FbtsIt8arKQM%2FUs3xfcvyJxO79dirQFTKTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(a) : RCNN을 통해서 BBOX를 찾음&lt;/li&gt;
&lt;li&gt;(b) : Node를 점선으로 연결함&lt;/li&gt;
&lt;li&gt;(c) : Top-K만 남기고 Pruning을 함&lt;/li&gt;
&lt;li&gt;(d) : GCN을 태움
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Attention에서 쓰는 Score을 사용해서 표현하려고 함 (굵은 점선)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wr2NW/btsItHdi4Ou/JjTbrcjAKIlTKrHzlZTxUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wr2NW/btsItHdi4Ou/JjTbrcjAKIlTKrHzlZTxUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wr2NW/btsItHdi4Ou/JjTbrcjAKIlTKrHzlZTxUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwr2NW%2FbtsItHdi4Ou%2FJjTbrcjAKIlTKrHzlZTxUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3 Stage&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1) Object Region Proposal : Faster-RCNN을 통해 BBOX를 얻어냄
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;r: BBOX, x : feature, p : label distribution, C: class&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2) RePN (Relational Proposal Network)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N^2의 Dense relation이 있다고 가정함.&lt;/li&gt;
&lt;li&gt;처음에 얻은 p (distribution)을 통해 관계를 찾아냄
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kernel function을 통해 관계를 찾아냄 =&amp;gt; 최종적으로 얻은 Score matrix를 사용함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NMS를 통해 Top-K의 Relation에서 몇개만을 남기고 쳐냄.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;aGCN
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이전에 설명한 GCN과 똑같음 - Message passing + Update&lt;/li&gt;
&lt;li&gt;연결 되어있는 애들 사이의 Message passing의 weight을 Attention score를 통해 조정함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Loss&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기에 Region proposal을 사용 - anchor BBOX 사용&lt;/li&gt;
&lt;li&gt;이후에는 Relation proposal loss,&amp;nbsp; Cross Entropy&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Metrics로는 Recall을 주로 사용함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원래는 주로 SGGen을 사용 : 주어진 Scene에서 BBOX를 잘 그렸는지, Object 사이의 Relation을 잘 예측했는지&lt;/li&gt;
&lt;li&gt;Boy wears shirt가 답인데 Men wears shirt라고 하면 아예 틀렸다고 함 =&amp;gt; SGGen + 라는 Metric 제안&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KJjZX/btsItSFL3Wo/k1hHmWvdzkj3KT2K3SJKK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KJjZX/btsItSFL3Wo/k1hHmWvdzkj3KT2K3SJKK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KJjZX/btsItSFL3Wo/k1hHmWvdzkj3KT2K3SJKK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKJjZX%2FbtsItSFL3Wo%2Fk1hHmWvdzkj3KT2K3SJKK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFLz83/btsItTR7hYJ/wmX6auK3lU3bKMSlgW9C7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFLz83/btsItTR7hYJ/wmX6auK3lU3bKMSlgW9C7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFLz83/btsItTR7hYJ/wmX6auK3lU3bKMSlgW9C7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFLz83%2FbtsItTR7hYJ%2FwmX6auK3lU3bKMSlgW9C7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cf0svf/btsIvylreRn/SUNLL7ijQZjMP1EAEpYRE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cf0svf/btsIvylreRn/SUNLL7ijQZjMP1EAEpYRE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cf0svf/btsIvylreRn/SUNLL7ijQZjMP1EAEpYRE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcf0svf%2FbtsIvylreRn%2FSUNLL7ijQZjMP1EAEpYRE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HgC8B/btsItJCe5nH/rKRn7xFBI7aTQZzFeogTC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HgC8B/btsItJCe5nH/rKRn7xFBI7aTQZzFeogTC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HgC8B/btsItJCe5nH/rKRn7xFBI7aTQZzFeogTC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHgC8B%2FbtsItJCe5nH%2FrKRn7xFBI7aTQZzFeogTC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rFVy9/btsIuReYm3b/m9kxpEq0x9kF5fjQTGF8zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rFVy9/btsIuReYm3b/m9kxpEq0x9kF5fjQTGF8zK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rFVy9/btsIuReYm3b/m9kxpEq0x9kF5fjQTGF8zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrFVy9%2FbtsIuReYm3b%2Fm9kxpEq0x9kF5fjQTGF8zK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzOguB/btsIt6cJVuN/W979u9VRTFStCQqzRAjzy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzOguB/btsIt6cJVuN/W979u9VRTFStCQqzRAjzy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzOguB/btsIt6cJVuN/W979u9VRTFStCQqzRAjzy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzOguB%2FbtsIt6cJVuN%2FW979u9VRTFStCQqzRAjzy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Base</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/79</guid>
      <comments>https://learning-sarah.tistory.com/79#entry79comment</comments>
      <pubDate>Wed, 10 Jul 2024 18:11:11 +0900</pubDate>
    </item>
    <item>
      <title>Graph Neural Networks</title>
      <link>https://learning-sarah.tistory.com/78</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Graph Representation Learning (GRL)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node Embedding : node의 구조나 피쳐를 잘 조합해서 Feature Vector로 매핑하는 것을 의미&lt;/li&gt;
&lt;li&gt;Graph Task
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node level : Node의 종류 예측, 분류&lt;/li&gt;
&lt;li&gt;Edge level : Node 사이의 Edge가 존재하냐&lt;/li&gt;
&lt;li&gt;Graph level : Graph 자체를 분류, Graph가 다음에 어떻게 바뀔 것인지 prediction&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;응용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구글의 AlphaFold&lt;/li&gt;
&lt;li&gt;추천 시스템&lt;/li&gt;
&lt;li&gt;AI 신약 개발&lt;/li&gt;
&lt;li&gt;비전에서 Scene Graph 생성&lt;/li&gt;
&lt;li&gt;Scene Graph으로부터 이미지 생성&lt;/li&gt;
&lt;li&gt;Knowledge Graph&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Graph&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1662&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOxVN1/btsItC3cIrr/qm6fkGiSA4ufNqHybaRtaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOxVN1/btsItC3cIrr/qm6fkGiSA4ufNqHybaRtaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOxVN1/btsItC3cIrr/qm6fkGiSA4ufNqHybaRtaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOxVN1%2FbtsItC3cIrr%2Fqm6fkGiSA4ufNqHybaRtaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1662&quot; height=&quot;1080&quot; data-origin-width=&quot;1662&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node와, Node 사이를 이어주는 Edge로 구성됨.&lt;/li&gt;
&lt;li&gt;Node의 Feature를 어떻게 쓸건지, Graph 자체의 Adjacency Matix를 어떻게 쓸건지 초점을 맞춤&lt;/li&gt;
&lt;li&gt;위와 같은 그래프를 Homogeneous라고 함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Heterogeneous graph&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKD1wv/btsIupaX7m3/JkOYR7hKKSCob20BlqqE6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKD1wv/btsIupaX7m3/JkOYR7hKKSCob20BlqqE6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKD1wv/btsIupaX7m3/JkOYR7hKKSCob20BlqqE6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKD1wv%2FbtsIupaX7m3%2FJkOYR7hKKSCob20BlqqE6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node의 종류가 다름.&lt;/li&gt;
&lt;li&gt;같은 type의 Node는 Edge가 없음. 위에서는 3 C 2개의 Edge 종류&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Node Embedding&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cp2rXW/btsIs3NFPQM/8IBLoxFFz6uUSqFTq81xwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cp2rXW/btsIs3NFPQM/8IBLoxFFz6uUSqFTq81xwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cp2rXW/btsIs3NFPQM/8IBLoxFFz6uUSqFTq81xwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp2rXW%2FbtsIs3NFPQM%2F8IBLoxFFz6uUSqFTq81xwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비슷한 Node는 Embedding space에 가깝게 위치시키기&lt;/li&gt;
&lt;li&gt;Encoder function과 원래 Graph의 Similarity fuction을 정의해야 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Node의 유사도를 어떻게 정의할 것인가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cs0RBd/btsItDOx41B/q5KrWvDLOYeC3ILXaSDDSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cs0RBd/btsItDOx41B/q5KrWvDLOYeC3ILXaSDDSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cs0RBd/btsItDOx41B/q5KrWvDLOYeC3ILXaSDDSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcs0RBd%2FbtsItDOx41B%2Fq5KrWvDLOYeC3ILXaSDDSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node level
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Degree로 정의&lt;/li&gt;
&lt;li&gt;Clustering coefficient로 정의 : 이웃하는 Node들이 연결되어 있는지&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJmLR3/btsIsvRt3oy/mXa0pT23pynqaWRXfkxKn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJmLR3/btsIsvRt3oy/mXa0pT23pynqaWRXfkxKn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJmLR3/btsIsvRt3oy/mXa0pT23pynqaWRXfkxKn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJmLR3%2FbtsIsvRt3oy%2FmXa0pT23pynqaWRXfkxKn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyzUIn/btsIsvRt3Ft/3qObR1NbnkWfaX3QrD4Zc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyzUIn/btsIsvRt3Ft/3qObR1NbnkWfaX3QrD4Zc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyzUIn/btsIsvRt3Ft/3qObR1NbnkWfaX3QrD4Zc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyzUIn%2FbtsIsvRt3Ft%2F3qObR1NbnkWfaX3QrD4Zc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Edge level
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Local neighborhood overlap : 이웃들이 얼마나 겹치는지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;common neighbors : 단순 겹치는 것 계산, But Degree의 영향을 받을 수 있음 &lt;br /&gt;=&amp;gt; Jacarrd, Adamic-Adar 등으로도 계산할 수 있음&lt;/li&gt;
&lt;li&gt;Random-walk based : Non-deterministic하게 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Encoder를 어떻게 정의할 것인가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GeLNP/btsIsA6iudD/w8Gsr5dzifMbtPGKCh1K41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GeLNP/btsIsA6iudD/w8Gsr5dzifMbtPGKCh1K41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GeLNP/btsIsA6iudD/w8Gsr5dzifMbtPGKCh1K41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGeLNP%2FbtsIsA6iudD%2Fw8Gsr5dzifMbtPGKCh1K41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Shallow embedding : 제일 단순하게는 One-Hot vector를 학습함 =&amp;gt; Encoder가 Vector를 look-up하는 방식
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;너무 많은 파라미터를 학습해야 함&lt;/li&gt;
&lt;li&gt;Transductive 함 (새롭게 나오는 Unseen node를 학습하지 못함)&amp;nbsp; &amp;lt;=&amp;gt; Inductive&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GNN의 등장&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Graph Neural Network (GNN)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/upI8o/btsItmsGYTO/yeJCBlkrEa63sMS3xyW3Jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/upI8o/btsItmsGYTO/yeJCBlkrEa63sMS3xyW3Jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/upI8o/btsItmsGYTO/yeJCBlkrEa63sMS3xyW3Jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FupI8o%2FbtsItmsGYTO%2FyeJCBlkrEa63sMS3xyW3Jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq7VrE/btsIupB25xU/5zHhNrodF9fF74XZXa1Cx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq7VrE/btsIupB25xU/5zHhNrodF9fF74XZXa1Cx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq7VrE/btsIupB25xU/5zHhNrodF9fF74XZXa1Cx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq7VrE%2FbtsIupB25xU%2F5zHhNrodF9fF74XZXa1Cx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Neural Network를 거쳐서 Hidden representation을 생성함&lt;/li&gt;
&lt;li&gt;Convolution
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Graph는 Grid Structure가 아니라 비전의 CNN 같이 Sliding window를 정의할 수 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Message Passing NNs (MPNN)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yYGgg/btsIsLmeSVH/lk1B0qaTjTBYXcinASMrVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yYGgg/btsIsLmeSVH/lk1B0qaTjTBYXcinASMrVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yYGgg/btsIsLmeSVH/lk1B0qaTjTBYXcinASMrVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyYGgg%2FbtsIsLmeSVH%2Flk1B0qaTjTBYXcinASMrVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GNN에서 제일 중요한 파트&lt;/li&gt;
&lt;li&gt;자기 이웃들로부터 Message 라는 정보를 받아서 학습을 하겠음&lt;/li&gt;
&lt;li&gt;A의 노드 정보를 학습하기 위해, 연결되어 있는 B, C, D의 정보를 잘 연결해줘야 됨 / 두가지 파트로 구성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Message Passing (Aggregation) : 이웃으로부터 합쳐서 정보를 받아옴&lt;/li&gt;
&lt;li&gt;Update : 메세지로부터 자신의 Hidden state를 업데이트 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9fD6J/btsIt9lPWE1/NX9nCtJkalGozpNkDqsQdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9fD6J/btsIt9lPWE1/NX9nCtJkalGozpNkDqsQdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9fD6J/btsIt9lPWE1/NX9nCtJkalGozpNkDqsQdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9fD6J%2FbtsIt9lPWE1%2FNX9nCtJkalGozpNkDqsQdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKA878/btsItRFOGRg/4cdbjgITnF2AtiFQNk6HW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKA878/btsItRFOGRg/4cdbjgITnF2AtiFQNk6HW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKA878/btsItRFOGRg/4cdbjgITnF2AtiFQNk6HW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKA878%2FbtsItRFOGRg%2F4cdbjgITnF2AtiFQNk6HW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;h : hidden representation, h^{t+1} : 일종의 레이어&lt;/li&gt;
&lt;li&gt;N : neighborhood, v 기준으로 메세지를 보고 있음&lt;/li&gt;
&lt;li&gt;위 예시에서는 Sum으로 Aggregate하고 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;B, C, D를 합쳐서 A한테 메세지를 보냄 // 자신의 t Rep와 메세지를 합쳐서 t+1 Rep를 만듦&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;최종적으로 y hat이라는 Representation vector를 얻어냄&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G6z0I/btsIusetFU9/VTJOT7ljVQ6hvtz9NAtdGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G6z0I/btsIusetFU9/VTJOT7ljVQ6hvtz9NAtdGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G6z0I/btsIusetFU9/VTJOT7ljVQ6hvtz9NAtdGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG6z0I%2FbtsIusetFU9%2FVTJOT7ljVQ6hvtz9NAtdGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메세지 패싱 구조에 NN을 붙이는 게 GNN의 목적
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위의 예시에서는 Update fuction에 Linear layer 라고 붙임 =&amp;gt; 가장 기초적인 GNN&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Node의 Feature와 함께, 임의의 detph를 가진 이웃의 정보를 같이 가져올 수 있음&lt;/li&gt;
&lt;li&gt;모든 Node에 대해 같은 Parameter를 학습하기 때문에, Inductive capability를 얻을 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;새로운 Node가 생겨도 일반화가 가능함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhVngm/btsIsuE59US/irc0aWsaUIKt8fDKsWwMU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhVngm/btsIsuE59US/irc0aWsaUIKt8fDKsWwMU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhVngm/btsIsuE59US/irc0aWsaUIKt8fDKsWwMU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhVngm%2FbtsIsuE59US%2Firc0aWsaUIKt8fDKsWwMU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Loss function&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZQafy/btsItCWrzw5/LGpGW0a9n0iYOt1IdXuZE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZQafy/btsItCWrzw5/LGpGW0a9n0iYOt1IdXuZE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZQafy/btsItCWrzw5/LGpGW0a9n0iYOt1IdXuZE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZQafy%2FbtsItCWrzw5%2FLGpGW0a9n0iYOt1IdXuZE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Contrastive learning 에서 쓰이는 것처럼, 비슷한 Node는 비슷한 Embedding을 가지도록 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c88tGT/btsIsukKlPl/za8azyMVKNKp3jgdxY8Jc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c88tGT/btsIsukKlPl/za8azyMVKNKp3jgdxY8Jc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c88tGT/btsIsukKlPl/za8azyMVKNKp3jgdxY8Jc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc88tGT%2FbtsIsukKlPl%2Fza8azyMVKNKp3jgdxY8Jc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Supervised learning처럼 CE 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;But 위와 같은 방법은 Node의 Degree에 굉장히 민감해짐.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A 노드가 B 노드에 비해 이웃이 100배 많으면, 너무 큰 노드(A)로 쏠려버림 (Oversmoothing)&lt;/li&gt;
&lt;li&gt;레이어를 조금만 깊게 쌓아도 (4~5개) 이러한 문제가 발생함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;가장 단순하게 Normalization 해서 위의 문제를 해결할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Graph Convolutional Network&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FW2JJ/btsIrKVO50H/KkHlkjunsD6tWkELE3fnCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FW2JJ/btsIrKVO50H/KkHlkjunsD6tWkELE3fnCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FW2JJ/btsIrKVO50H/KkHlkjunsD6tWkELE3fnCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFW2JJ%2FbtsIrKVO50H%2FKkHlkjunsD6tWkELE3fnCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTIP0k/btsIsBYsEXx/X7FircD9q1V1lFaIbrkYak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTIP0k/btsIsBYsEXx/X7FircD9q1V1lFaIbrkYak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTIP0k/btsIsBYsEXx/X7FircD9q1V1lFaIbrkYak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTIP0k%2FbtsIsBYsEXx%2FX7FircD9q1V1lFaIbrkYak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9ze3y/btsIt8mWNiQ/KKVaVw1U4ZPqo7OmiqUGu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9ze3y/btsIt8mWNiQ/KKVaVw1U4ZPqo7OmiqUGu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9ze3y/btsIt8mWNiQ/KKVaVw1U4ZPqo7OmiqUGu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9ze3y%2FbtsIt8mWNiQ%2FKKVaVw1U4ZPqo7OmiqUGu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;symmetric-normalization : 자기 이웃들의 Degree를 고려하여 Aggregation passing을 Normalization함&amp;nbsp;&lt;/li&gt;
&lt;li&gt;self-loop update : aggregation function에 자기 자신을 합쳐서 효율적으로 update 함&lt;/li&gt;
&lt;li&gt;수식은 직접 논문 참고&lt;/li&gt;
&lt;li&gt;But, 모든 Node와 Degree를 참고해야 되기 때문에 엄밀하게는 Inductive setting이 아님&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GraphSAGE&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Neighborhood를 샘플링 (Random walk) 해서 Inductive setting&lt;/li&gt;
&lt;li&gt;Aggregate 방식은 위와 똑같음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;세가지 방식 (Mean, Pool, LSTM) 을 제시해서 관찰함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAJeMP/btsIt6vXmLh/x8YpyBoZU8fsdI92JQK0L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAJeMP/btsIt6vXmLh/x8YpyBoZU8fsdI92JQK0L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAJeMP/btsIt6vXmLh/x8YpyBoZU8fsdI92JQK0L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAJeMP%2FbtsIt6vXmLh%2Fx8YpyBoZU8fsdI92JQK0L1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOp4DZ/btsIt90sInu/L01G2fYMlJOBWKON0WyBKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOp4DZ/btsIt90sInu/L01G2fYMlJOBWKON0WyBKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOp4DZ/btsIt90sInu/L01G2fYMlJOBWKON0WyBKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOp4DZ%2FbtsIt90sInu%2FL01G2fYMlJOBWKON0WyBKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Negative sampling : Random walk 상에서 같이 등장하지 않을 likelihood를 빼줌&lt;/li&gt;
&lt;li&gt;Node 들의 feature를 학습하면, Graph의 Structure를 보여줄 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TONsW/btsIsMk76CY/HwvnPJ6BoT7oNvgpDk9qh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TONsW/btsIsMk76CY/HwvnPJ6BoT7oNvgpDk9qh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TONsW/btsIsMk76CY/HwvnPJ6BoT7oNvgpDk9qh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTONsW%2FbtsIsMk76CY%2FHwvnPJ6BoT7oNvgpDk9qh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;720&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이후 연구는 Attention, Transformer 구조를 GNN에 적용하려고 함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 자료&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=P3D4uUupFn4&amp;amp;list=PL6hUlFPFF1SLZBu9OimYx-QOU7svjXQ4t&amp;amp;index=5&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=P3D4uUupFn4&amp;amp;list=PL6hUlFPFF1SLZBu9OimYx-QOU7svjXQ4t&amp;amp;index=5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Base</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/78</guid>
      <comments>https://learning-sarah.tistory.com/78#entry78comment</comments>
      <pubDate>Wed, 10 Jul 2024 02:46:42 +0900</pubDate>
    </item>
    <item>
      <title>Personal Links</title>
      <link>https://learning-sarah.tistory.com/notice/76</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Site&lt;/b&gt; : &lt;a href=&quot;https://seoha-kim.github.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Github&lt;/b&gt; : &lt;a href=&quot;https://github.com/seoha-kim&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedIn&lt;/b&gt; : &lt;a href=&quot;http://linkedin.com/in/kseoha7&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Google Sholar&lt;/b&gt; : &lt;a href=&quot;https://scholar.google.com/citations?user=oreKAI0AAAAJ&amp;amp;hl=en&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;티스토리는 정리 목적으로 사용하기에, 댓글을 잘 읽지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;궁금한 점이 있다면 kim-seoha@naver.com으로 연락주세요 :)&lt;/p&gt;</description>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/notice/76</guid>
      <pubDate>Fri, 29 Dec 2023 18:16:45 +0900</pubDate>
    </item>
    <item>
      <title>terminal에서 바로 구글 드라이브 파일 바로 다운 받는 법</title>
      <link>https://learning-sarah.tistory.com/74</link>
      <description>&lt;pre id=&quot;code_1633421505785&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wget &quot;https://drive.google.com/uc?export=download&amp;amp;id=1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 명령어를 입력할 경우 대용량 파일의 경우 다음과 같은 오류가 난다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1633421548989&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;--2021-10-05 08:07:17--  https://drive.google.com/uc?export=download&amp;amp;id=1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB
Resolving drive.google.com (drive.google.com)... 173.194.216.113, 173.194.216.102, 173.194.216.101, ...
Connecting to drive.google.com (drive.google.com)|173.194.216.113|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: &amp;lsquo;uc?export=download&amp;amp;id=1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB&amp;rsquo;

uc?export=download&amp;amp;id=1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB               [ &amp;lt;=&amp;gt;                                                                                                                                                        ]   3.19K  --.-KB/s    in 0.003s  

2021-10-05 08:07:17 (1.01 MB/s) - &amp;lsquo;uc?export=download&amp;amp;id=1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB&amp;rsquo; saved [3271]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라고 뜨면서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'uc?export=download&amp;amp;id=1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB' 라고 저장되는 사태 발생...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일이 대용량일 경우에 이런 오류가 발생하는 듯하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글링을 통해 다음과 같이 실행하니 해결&lt;/p&gt;
&lt;pre id=&quot;code_1633421601630&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export fileid=1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB
export filename=train.tar

wget --save-cookies cookies.txt 'https://docs.google.com/uc?export=download&amp;amp;id='$fileid -O- \
     | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1/p' &amp;gt; confirm.txt

wget --load-cookies cookies.txt -O $filename \
     'https://docs.google.com/uc?export=download&amp;amp;id='$fileid'&amp;amp;confirm='$(&amp;lt;confirm.txt)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 fileid의 경우 링크 공유 -&amp;gt; (예시)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB/view?usp=sharing에서&quot;&gt;https://drive.google.com/file/d/1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB/view?usp=sharing&lt;/a&gt;에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;file/d/[fildid값]에서 복사하면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1633421995250&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;train.tar&quot; data-og-description=&quot;&quot; data-og-host=&quot;drive.google.com&quot; data-og-source-url=&quot;https://drive.google.com/file/d/1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB/view?usp=sharing에서&quot; data-og-url=&quot;https://drive.google.com/file/d/1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB/view?usp=sharing%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD&amp;amp;usp=embed_facebook&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB/view?usp=sharing에서&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://drive.google.com/file/d/1O1yRuy9yHrTwSjd7AzmaQ6MJ8TOo-QhB/view?usp=sharing에서&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;train.tar&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;drive.google.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Etc</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/74</guid>
      <comments>https://learning-sarah.tistory.com/74#entry74comment</comments>
      <pubDate>Tue, 5 Oct 2021 17:20:36 +0900</pubDate>
    </item>
    <item>
      <title>Docker 핵심 개념</title>
      <link>https://learning-sarah.tistory.com/65</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 도커를 왜 사용해야할까?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker는 격리된 환경에서 프로세스를 실행시키기 위해 사용하는 컨테이너 기반의 가상화 플랫폼입니다. 파이썬 패키지들에 대해서만 격리된 환경을 제공하는 Anaconda와 다르게 Docker는 VM 수준의 가상화를 훨씬 빠르고 가볍게 제공하여 어떤 OS건, 어떤 환경에서건 동일한 프로그램의 실행과 관리를 가능케합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 VM은 하이파이저를 반드시 거치고, 게스트 운영체제를 위한 라이브러리, 커널 등을 전부 포함하기 때문에 이미지의 크기가 커집니다. VM은 &lt;b&gt;완벽한 운영체제를 생성할 수 있다&lt;/b&gt;는 단점도 있지만, 일반 호스트에 비해 &lt;b&gt;성능 손실&lt;/b&gt;이 있을 수도 있으며, 수 기가바이트에 달하는 &lt;b&gt;가상 머신 이미지를 애플리케이션으로 배포하기에 부담&lt;/b&gt;스럽습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 비해 Docker는 가상화된 공간을 생성하기 위해 리눅스의 자체 기능인 chroot, namespace, cgroup을 사용함으로써 &lt;b&gt;프로세스 단위의 격리 환경&lt;/b&gt;을 만들기 때문에 성능 손실이 거의 없습니다. 컨테이너에 필요한 커널은 호스트의 커널은 호스트의 커널을 공유해 사용하고, 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행 파일만 존재하기 때문에 컨테이너를 이미지로 만들었을 때 이미지의 용량이 VM에 비해 대폭 줄어듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하자면 도커의 장점은 다음과 같습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;애플리케이션의 개발과 배포가 편해집니다.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;도커 컨테이너 자체에 특별한 권한을 주지 않는한 호스트의 OS에는 영향을 주지 않습니다.&lt;/li&gt;
&lt;li&gt;새롭게 패키지를 설치할 필요나 각종 라이브러리 설치의 의존성을 고려할 필요 없이, '도커 이미지'를 만들어 배포하기만 해도 됩니다.&lt;/li&gt;
&lt;li&gt;커널을 포함하고 있지 않기 때문에 이미지 크기가 그다지 크지 않습니다. 이미지는 레이어 단위로 구성되며, 중복되는 레이어를 재사용할 수 있어 애플리케이션 배포 속도가 매우 빨라집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;여러 애플리케이션의 독립성과 확장성이 높아집니다.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 모듈이 독립된 형태로 구성되어 언어에 종속되지 않고, 관리가 쉬워집니다.&lt;/li&gt;
&lt;li&gt;예를 들어, 웹 서비스에 부하가 발생할 시에 웹 서버 컨테이너를 동적으로 늘려서 부하를 분산할 수 있습니다.&lt;/li&gt;
&lt;li&gt;또한 웹 서비스와 데이터 베이스 이미지를 독립적으로 관리하기 때문에 유지 보수에도 용이해집니다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 도커 이미지와 컨테이너&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker의 핵심 용어로 &lt;b&gt;컨테이너&lt;/b&gt;와 &lt;b&gt;이미지&lt;/b&gt;만을 언급하고 넘어가자면, &lt;b&gt;컨테이너&lt;/b&gt;란 격리되어 실행되는 환경의 단위로 하나의 VM과 같이 이해 가능합니다. &lt;b&gt;이미지&lt;/b&gt;란 해당 컨테이너가 가지는 격리된 환경 정보입니다. 즉 Anaconda와 비교하여 설명하자면&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Anaconda의 Env&lt;/b&gt; &amp;asymp; &lt;b&gt;Docker 컨테이너&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Anaconda의 config.yaml&lt;/b&gt; &amp;asymp; &lt;b&gt;Docker 이미지&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;와 같이 생각하시면 쉽습니다. 다만 중요한 점은 컨테이너는 하나의 프로세스라는 점에서 파이썬 패키지들의 저장 경로를 격리함으로써 독립된 환경을 제공하는 Anaconda와 다릅니다. (Anaconda env는 프로세스가 아닙니다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.1 도커 이미지&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Image는 가상 머신을 생성할 때 사용하는 iso 파일과 비슷합니다. 이미지는 여러 개의 레이어로 된 바이너리 파일로 존재하고, 컨테이너를 생성하고 실행할 때 &lt;b&gt;읽기 전용&lt;/b&gt;으로 사용됩니다. 도커에서 사용되는 이미지의 이름은 기본적으로 &lt;b&gt;[저장소 이름]/[이미지 이름]:[태그]&lt;/b&gt; 형태로 구성됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 예: &lt;b&gt;plask/ubuntu:14.04&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;저장소 이름:&lt;/b&gt; 이미지가 저장된 장소를 의미합니다. 생략할 경우 Docker hub의 official image를 뜻합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이미지 이름:&lt;/b&gt; 해당 이미지가 어떠한 역할을 하는지를 나타냅니다. 생략할 수 없습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;태그:&lt;/b&gt; 일반적으로 버전을 명시합니다. 생략할 경우 latest로 인식합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1420&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLFGsp/btrd1ekuyIC/GnjbCPveRViDdhSzkdT9H0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLFGsp/btrd1ekuyIC/GnjbCPveRViDdhSzkdT9H0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLFGsp/btrd1ekuyIC/GnjbCPveRViDdhSzkdT9H0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLFGsp%2Fbtrd1ekuyIC%2FGnjbCPveRViDdhSzkdT9H0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1420&quot; height=&quot;484&quot; data-origin-width=&quot;1420&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 이미지는 여러개의 레이어로 구성되어 있으며, 이미지를 커밋할 때 컨테이너에서 &lt;b&gt;변경된 사항만 새로운 레이어로 저장&lt;/b&gt;하고, 새로운 이미지의 실제 크기는 &lt;b&gt;변경 전 이미지 크기+변경 과정에서 추가된 레이어의 크기&lt;/b&gt;가 됩니다. 이미지 레이어를 재사용하기 때문에 효율적으로 효율적으로 애플리케이션을 배포할 수 있습니다. 이미지를 생성했다면 도커를 배포할 방법이 필요한데 Docker Hub와 Docker Private Registry를 이용하는 방법이 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.2 도커 컨테이너&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Container는 이미지 목적에 맞는 파일을 들어있는 &lt;b&gt;파일 시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간&lt;/b&gt;입니다. 대부분 도커 컨테이너는 생성될 때 사용된 이미지의 종류에 따라 알맞은 설정과 파일을 가지고 있기 때문에 도커 이미지의 목적에 맞도록 사용하는 것이 일반적입니다. 컨테이너를 이미지를 읽기 전용으로 사용하되 이미지에서 변경된 사항만 컨테이너 계층에 저장하므로 &lt;b&gt;컨테이너에서 무엇을 하든지 원래 이미지는 영향을 받지 않습니다.&lt;/b&gt; 또한 컨테이너는 각기 독립되어 있으므로 특정 컨테이너에서 어떤 애플리케이션을 설치하거나 삭제해도 &lt;b&gt;다른 컨테이너와 호스트는 변화가 없습니다&lt;/b&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 도커 볼륨&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 이미지로 컨테이너를 생성하면 이미지는 읽기 전용이 되며 컨테이너의 변경 사항만 별도로 저장해서 각 컨테이너의 정보를 보존합니다. 이미 생성된 이미지는 어떠한 경우로도 변경되지 않으며, 컨테이너 계층에 원래 이미지에서 변경된 파일 시스템 등을 저장합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 &lt;b&gt;해당 컨테이너를 삭제하면 컨테이너 계층에 저장되어 있던 데이터 베이스의 정보도 삭제된다는&lt;/b&gt; 점입니다. 도커의 컨테이너는 생성과 삭제가 매우 쉬우므로 실수로 컨테이너를 삭제하면 데이터를 복구할 수 없게 됩니다. 이를 방지하기 위해 컨테이너의 데이터를 영속적 데이터로 활용하는 방법이 있는데 Docker Volume을 활용하는 방법입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Volume을 사용하는 방법은 여러개가 있습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;호스트와 볼륨을 공유하는 방법&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;볼륨 컨테이너를 활용하는 방법&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;도커가 관리하는 볼륨을 생성하는 방&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 도커 허브와 도커 프라이빗 레지스트리&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.1 도커 허브&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Hub는 maven repository와 같이 외부에 공개되어 있는 도커 이미지 레포지토리로, &lt;b&gt;도커 이미지를 위한 클라우드 서비스&lt;/b&gt;라고 생각하면 쉽습니다. docker pull 명령을 이용하여 컨테이너를 로컬에 받아 오거나, Docker image 빌드 시 베이스 이미지 등을 받아오는데 주로 사용됩니다. 결제하지 않으면 비공개 저장소의 수가 제한되어 있다는 단점이 있으나 공개 저장소는 무료로 사용할 수 있으므로 만든 이미지를 다른 사용자에게도 공개해도 없다면 좋은 선택입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;892&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCLYTc/btrd5kc1efo/PsVIi9tBINFt3aZ7ZqM1qK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCLYTc/btrd5kc1efo/PsVIi9tBINFt3aZ7ZqM1qK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCLYTc/btrd5kc1efo/PsVIi9tBINFt3aZ7ZqM1qK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCLYTc%2Fbtrd5kc1efo%2FPsVIi9tBINFt3aZ7ZqM1qK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1272&quot; height=&quot;892&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;892&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.2 도커 프라이빗 레지스트리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Private Registry는 &lt;b&gt;사용자가 직접 이미지를 저장소를 만드는 방법&lt;/b&gt;입니다. 그러나 사용자가 직접 이미지 저장소 및 사용되는 서버, 저장 공간 등을 관리해야 하므로 도커 허브보다는 사용법이 까다롭습니다. 그러나 회사의 내부망 같은 곳에서 도커 이미지를 배포해야 한다면 도커 사설 레지스트리가 더 좋은 방안이 될 수 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Dockerfile&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발한 애플리케이션을 컨테이너화할 때 가장 먼저 생각나는 방법은 아래와 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아무것도 존재하지 않는 이미지로 컨테이너를 생성 &amp;rarr; 애플리케이션을 위한 환경을 설치하고 소스코드 등을 복사해 잘 동작하는 것을 확인 &amp;rarr; 컨테이너를 이미지로 커밋&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법을 사용하면 &lt;b&gt;일일이 수작업으로 패키지를 설치하고 소스코드를 git에서 복제하거나 호스트에서 복사해야 한다는 단점이 있습니다.&lt;/b&gt; 직접 컨테이너에서 애플리케이션을 구동해보고 이미지로 커밋하기 때문에 이미지의 동작을 보장할 수 있다는 장점도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커는 위와 같은 일련의 과정을 손쉽게 기록하고 수행할 수 있는 빌드(build) 명령어를 제공합니다. Dockerfile은 완성된 이미지를 생성하기 위해 컨테이너에 설치해야 하는 패키지, 추가해야 하는 소스코드, 실행해야 하는 명령어와 셸 스크립트 등을 하나의 파일에 기록해두면 도커는 이 파일을 읽어 이미지로 만들어냅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 파일을 사용하면 &lt;b&gt;직접 컨테이너를 생성하고 이미지로 커밋해야 하는 번거로움을 덜 수 있을 뿐더러 git과 같은 개발 도구를 통해 애플리케이션의 빌드 및 배포를 자동화할 수 있습니다.&lt;/b&gt; 또한 도커 이미지를 도커 허브에 배포하는 대신, 도커 파일을 배포할 수도 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 도커 데몬&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커의 구조는 크게 두 가지로 나뉩니다. 하나는 클라이언트로서의 도커이고, 다른 하나는 서버로서의 도커입니다. 실제로 도커 서버는 &lt;b&gt;실제로 컨테이너를 생성하고 실행하며 이미지를 관리하는 주체&lt;/b&gt;이고, 이는 dockerd 프로세스로서 동작합니다. 도커 엔진은 외부에서 API를 받아서 도커 엔진의 기능을 수행하는데, 도커 프로세스가 실행되어 서버로서 입력을 받은 준비가 된 상태를 도커 데몬이라고 이야기합니다. 도커 데몬은 API의 입력을 받아 도커 엔진의 기능을 수행하는데, 이 API를 사용할 수 있도록 CLI를 제공하는 것이 도커 클라이언트입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 docker로 시작하는 명령어를 입력하면 도커 클라이언트를 사용하는 것이며, 도커 클라이언트는 입력된 명령어를 로컬에 존재하는 도커 데몬에게 API로서 전달합니다. 이때 도커 클라이언트는 /var/run/docker.sock에 위치한 유닉스 소켓을 통해 도커 데몬 API를 호출합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1380&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QivMx/btrd1xRXybV/nUaqnWC2HYJHi6FBmdHj50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QivMx/btrd1xRXybV/nUaqnWC2HYJHi6FBmdHj50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QivMx/btrd1xRXybV/nUaqnWC2HYJHi6FBmdHj50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQivMx%2Fbtrd1xRXybV%2FnUaqnWC2HYJHi6FBmdHj50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1380&quot; height=&quot;332&quot; data-origin-width=&quot;1380&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 터미널이나 PuTTY 등으로 도커가 설치된 호스트에 접속해 docker 명령어를 입력하면 아래와 같은 과정으로 도커가 제어가 됩니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;사용자가 docker version 같은 도커 명령어를 입력합니다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;/user/bin/docker는 /var/run/docker.sock 유닉스 소켓을 사용해 도커 데몬에게 명령어를 전달하빈다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;도커 데몬은 이 명령어를 파싱하고 명령어에 해당하는 작업을 수행합니다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수행 결과를 도커 클라이언트에게 반환하고 사용자에게 결과를 출력합니다.&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우분투에서는 도커가 설치되면 자동으로 서비스로 등록되므로 호스트가 재시작되더라도 자동으로 실행됩니다. 레드햇 계열의 운영체제는 도커를 설치해도 자동으로 실행되도록 설정되지는 않으므로, 따로 설정을 해주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Etc</category>
      <category>docker</category>
      <category>dockerfile</category>
      <category>도커</category>
      <category>도커데몬</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/65</guid>
      <comments>https://learning-sarah.tistory.com/65#entry65comment</comments>
      <pubDate>Sat, 4 Sep 2021 13:55:56 +0900</pubDate>
    </item>
    <item>
      <title>[Mac] AWS EC2 환경에서 GUI 설치</title>
      <link>https://learning-sarah.tistory.com/63</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;Mac OS Big Sur Version 11.1에서 진행&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;본인 설정에 맞춰 필요한대로 인스턴스를 생성해주자&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;800&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cn37k8/btqVV2Jc4Y8/tPDvPAOkWggMzVe7zuRAjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cn37k8/btqVV2Jc4Y8/tPDvPAOkWggMzVe7zuRAjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cn37k8/btqVV2Jc4Y8/tPDvPAOkWggMzVe7zuRAjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcn37k8%2FbtqVV2Jc4Y8%2FtPDvPAOkWggMzVe7zuRAjk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;800&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;1. 보안 그룹으로 들아가서 인바운드 규칙에 다음과 같이 추가해주자&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;800&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTl8b9/btqWQ98ZsFP/crkleNxrflTttivV1ygqO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTl8b9/btqWQ98ZsFP/crkleNxrflTttivV1ygqO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTl8b9/btqWQ98ZsFP/crkleNxrflTttivV1ygqO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTl8b9%2FbtqWQ98ZsFP%2FcrkleNxrflTttivV1ygqO0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;800&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1612537482311&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;* 모든 TCP 유형 선택 - 소스 : 내 IP 추가
* SSH 유형 선택 - 소스 : 내 IP 추가
* RDP 유형 선택 - 소스 : 내 IP 추가&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위치 무관으로 소스 추가하면 편하지만 몇분 만에 해킹 당할 위험이 있다고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;불편해도 꼭 내 IP로 소스를 여러번 해주자.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;2. 연결 버튼을 누르면 터미널에서 접속할 수 있는 명령어를 보여주는데 이를 복사해 터미널에 입력한다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;600&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZxuGX/btqVSvE8lvV/zOq3k8BU2vykL59jAur5R0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZxuGX/btqVSvE8lvV/zOq3k8BU2vykL59jAur5R0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZxuGX/btqVSvE8lvV/zOq3k8BU2vykL59jAur5R0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZxuGX%2FbtqVSvE8lvV%2FzOq3k8BU2vykL59jAur5R0%2Fimg.png&quot; width=&quot;600&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마지막 명령어를 복사해서 pem키 있는 위치에서 터미널을 키고 입력하면 쉽게 접속할 수 있다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1613026915954&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh -i &quot;[본인의 펨키 이름].pem&quot; ubuntu@[본인의 퍼블릭 DNS]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;600&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boES3A/btqVV2oUSq2/kIpKROAkdcexMSShV8d6LK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boES3A/btqVV2oUSq2/kIpKROAkdcexMSShV8d6LK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boES3A/btqVV2oUSq2/kIpKROAkdcexMSShV8d6LK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboES3A%2FbtqVV2oUSq2%2FkIpKROAkdcexMSShV8d6LK%2Fimg.png&quot; width=&quot;600&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위의 문제가 없다면 ssh로 ec2에 연결이 될 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ubuntu@ip-[IP 주소 표시]라고 표시되면 성공이다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o5WD8/btqV091N28Y/ze7t4OIWzKOU5VbeH1Yjjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o5WD8/btqV091N28Y/ze7t4OIWzKOU5VbeH1Yjjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o5WD8/btqV091N28Y/ze7t4OIWzKOU5VbeH1Yjjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo5WD8%2FbtqV091N28Y%2Fze7t4OIWzKOU5VbeH1Yjjk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;3. 먼저 apt-get update를 해준다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1613026931730&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get update
sudo apt-get upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;나는 apt-get install 단계에서 다음과 같은 에러가 떴는데&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(Torch 0.3.0 / Python 2.7이 미리 설치된 마켓플레이스 AMI를 설치해서 뭔가 설정이 다른 것 같다. )&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;혹시라도 마찬가지의 에러가 뜬다면 다음 명령어를 실행해주자&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;에러가 뜨지 않는다면 다음 단계로 바로 진행해도 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1612538633462&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo killall apt apt-get
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;apt: no process found&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;apt-get: no process found&amp;nbsp;라고 뜨면 아래의 코드를 차례로 입력한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1612538795647&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*

sudo dpkg --configure -a
sudo apt update&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이제 정상적으로 apt-get install이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;4. 아래 파일을 편집해준다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1613026887729&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vim /etc/ssh/sshd_config&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래로 내려서 PasswordAuthentication yes를 해준다&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;수정이 끝났으면 ESC 키를 누른뒤 :wq!를 입력하고 엔터를 누른다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다 하고 나면 변경사항을 즉시 적용해주기 위해 명령어를 친다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987107881&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo /etc/init.d/ssh restart&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;5. ubuntu 계정의 비밀을 설정해준다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987428269&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo &amp;ndash;i
passwd ubuntu&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(*참고로 패스워드를 입력해도 보이지 않는다.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;우분투 계정으로 다시 접속한다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987474230&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;su ubuntu
cd ~&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;6. ubuntu-desktop을 설치해준다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987508155&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -y ubuntu-desktop&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;우분투 데스크톱 설치는 다소 오래 걸린다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;7. XRDP&amp;nbsp;와 xfce4 를 설치한다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987550612&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get install xfce4 xrdp
sudo apt-get install xfce4 xfce4-goodies&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;xfce4 가 기본&amp;nbsp;매니저가 되도록 설치해준다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987707613&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo xfce4-session &amp;gt; ~/.xsession
sudo cp /home/ubuntu/.xsession /etc/skel
chmod a+x ~/.xsession
sudo systemctl restart xrdp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;8. xrdp.ini 와 sesman.ini를 편집한다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987804800&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vim /etc/xrdp/xrdp.ini&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[xrdp1]&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;port=-1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;로 되어있는 걸 port=ask-1로 수정해준다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;수정이 완료하면 ESC 키 -&amp;gt; :wq! 엔터&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1612987866459&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/xrdp/sesman.ini&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[Security]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;#TerminalServerUsers=tsusers&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;#TerminalServerAdmins=tsadmins&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;로 각주 표시를 해준다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[Sessions]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;MaxSessions=100으로 수정한다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다 수정했으면 xrdp를 재시작해준다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1612987903884&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl restart xrdp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여기까지 해줬으면 원격접속을 위해 CoRD 프로그램을 설치한다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;http://cord.sourceforge.net/&quot;&gt;http://cord.sourceforge.net/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612987950142&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;CoRD: Remote Desktop for Mac OS X&quot; data-og-description=&quot;CoRD was a Mac OS X remote desktop client for Microsoft Windows computers using the RDP protocol. It's easy to use, fast, and free for anyone to use or modify. Announcements 2020-04-13: This project is defunct. Most people will be happy with Microsoft's cl&quot; data-og-host=&quot;cord.sourceforge.net&quot; data-og-source-url=&quot;http://cord.sourceforge.net/&quot; data-og-url=&quot;http://cord.sourceforge.net/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fcYkc/hyJeHuVexQ/VxYuPZOSlHGGqRJU2OHv11/img.jpg?width=500&amp;amp;height=353&amp;amp;face=0_0_500_353&quot;&gt;&lt;a href=&quot;http://cord.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://cord.sourceforge.net/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fcYkc/hyJeHuVexQ/VxYuPZOSlHGGqRJU2OHv11/img.jpg?width=500&amp;amp;height=353&amp;amp;face=0_0_500_353');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;CoRD: Remote Desktop for Mac OS X&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;CoRD was a Mac OS X remote desktop client for Microsoft Windows computers using the RDP protocol. It's easy to use, fast, and free for anyone to use or modify. Announcements 2020-04-13: This project is defunct. Most people will be happy with Microsoft's cl&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;cord.sourceforge.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;File-New Server로 서버를 새로 추가해주자&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uY6bb/btqWUMrFS1v/2PQT37yRpo5Rldpz2LGMwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uY6bb/btqWUMrFS1v/2PQT37yRpo5Rldpz2LGMwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uY6bb/btqWUMrFS1v/2PQT37yRpo5Rldpz2LGMwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuY6bb%2FbtqWUMrFS1v%2F2PQT37yRpo5Rldpz2LGMwk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Label 이름을 임의로 써주고, Address에는 인스턴스의 퍼블릭&amp;nbsp;IPv4&amp;nbsp;주소을 입력해준다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Username에는 root로, Password에는 5번에서 설정한 Ubuntu 비밀번호를 입력한다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;700&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mKTbc/btqWUqJb86i/fF3TrzEoaP3kipT9lP8kGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mKTbc/btqWUqJb86i/fF3TrzEoaP3kipT9lP8kGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mKTbc/btqWUqJb86i/fF3TrzEoaP3kipT9lP8kGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmKTbc%2FbtqWUqJb86i%2FfF3TrzEoaP3kipT9lP8kGK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;700&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그러면 이런 창이 뜰 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;username은 ubuntu로 수정, password는 다시 5번에서 설정한 Ubuntu 비밀번호를 입력한다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;700&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK6MSF/btqWWszcOIB/vVZRN2jkvPlpuCJcPlnkq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK6MSF/btqWWszcOIB/vVZRN2jkvPlpuCJcPlnkq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK6MSF/btqWWszcOIB/vVZRN2jkvPlpuCJcPlnkq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK6MSF%2FbtqWWszcOIB%2FvVZRN2jkvPlpuCJcPlnkq1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;700&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;본 화면이 뜨면 성공이다&lt;/span&gt;&lt;/p&gt;</description>
      <category>Etc</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>ec2-gui</category>
      <category>Mac</category>
      <category>macosx</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/63</guid>
      <comments>https://learning-sarah.tistory.com/63#entry63comment</comments>
      <pubDate>Thu, 11 Feb 2021 05:19:24 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 코딩테스트/알고리즘 참고 사이트</title>
      <link>https://learning-sarah.tistory.com/61</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 알고리즘 비쥬얼라이저 (&lt;a href=&quot;https://algorithm-visualizer.org/&quot;&gt;https://algorithm-visualizer.org/&lt;/a&gt;)&lt;/h3&gt;
&lt;figure id=&quot;og_1605250988194&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Algorithm Visualizer&quot; data-og-description=&quot;&quot; data-og-host=&quot;algorithm-visualizer.org&quot; data-og-source-url=&quot;https://algorithm-visualizer.org/&quot; data-og-url=&quot;https://algorithm-visualizer.org/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c55fyE/hyIeetAyUy/nsQckbCtOwMLB6nPTsOe50/img.png?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540&quot;&gt;&lt;a href=&quot;https://algorithm-visualizer.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://algorithm-visualizer.org/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c55fyE/hyIeetAyUy/nsQckbCtOwMLB6nPTsOe50/img.png?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Algorithm Visualizer&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;algorithm-visualizer.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- 핵심 알고리즘 소스코드와 시각화 자료를 제공한다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr style=&quot;border: none; font-size: 0px; line-height: 0; height: 20px; margin: 20px auto; background: url('https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg') 0px 0px / 200px 200px no-repeat #ffffff; cursor: pointer !important; width: 64px; color: #5c5c5c; font-family: 'Spoqa Han Sans', sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Big O 치트시트 (&lt;a href=&quot;https://www.bigocheatsheet.com/&quot;&gt;https://www.bigocheatsheet.com/&lt;/a&gt;&lt;a href=&quot;https://plotly.com/python/&quot;&gt;)&lt;/a&gt;&lt;/h3&gt;
&lt;figure id=&quot;og_1605251108547&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Big-O Algorithm Complexity Cheat Sheet (Know Thy Complexities!) @ericdrowell&quot; data-og-description=&quot;Know Thy Complexities! Hi there!&amp;nbsp; This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science.&amp;nbsp; When preparing for technical interviews in the past, I found myself spending hours crawling the internet putting t&quot; data-og-host=&quot;www.bigocheatsheet.com&quot; data-og-source-url=&quot;https://www.bigocheatsheet.com/&quot; data-og-url=&quot;https://www.bigocheatsheet.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.bigocheatsheet.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.bigocheatsheet.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Big-O Algorithm Complexity Cheat Sheet (Know Thy Complexities!) @ericdrowell&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Know Thy Complexities! Hi there!&amp;nbsp; This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science.&amp;nbsp; When preparing for technical interviews in the past, I found myself spending hours crawling the internet putting t&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.bigocheatsheet.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;- 자료구조/알고리즘의 시간 복잡도를 비교해준다&lt;/p&gt;
&lt;hr style=&quot;border: none; font-size: 0px; line-height: 0; height: 20px; margin: 20px auto; background: url('https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg') 0px 0px / 200px 200px no-repeat #ffffff; cursor: pointer !important; width: 64px; color: #5c5c5c; font-family: 'Spoqa Han Sans', sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 이것이 취업을 위한 코딩 테스트다 with 파이썬(&lt;a href=&quot;http://www.yes24.com/Product/Goods/91433923&quot;&gt;www.yes24.com/Product/Goods/91433923&lt;/a&gt;)&lt;/h2&gt;
&lt;figure id=&quot;og_1605251238411&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;book&quot; data-og-title=&quot;이것이 취업을 위한 코딩 테스트다 with 파이썬&quot; data-og-description=&quot;나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 &amp;middot; 삼성전자 &amp;middot; 네이버 &amp;middot; 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생&quot; data-og-host=&quot;www.yes24.com&quot; data-og-source-url=&quot;http://www.yes24.com/Product/Goods/91433923&quot; data-og-url=&quot;http://www.yes24.com/Product/Goods/91433923&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/yHekz/hyIdjwvdqY/dsqSMiA1gNBl3gimNhhSKK/img.jpg?width=311&amp;amp;height=400&amp;amp;face=0_0_311_400&quot;&gt;&lt;a href=&quot;http://www.yes24.com/Product/Goods/91433923&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://www.yes24.com/Product/Goods/91433923&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yHekz/hyIdjwvdqY/dsqSMiA1gNBl3gimNhhSKK/img.jpg?width=311&amp;amp;height=400&amp;amp;face=0_0_311_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;이것이 취업을 위한 코딩 테스트다 with 파이썬&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 &amp;middot; 삼성전자 &amp;middot; 네이버 &amp;middot; 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 카카오, 라인, 삼성전자의 2016년부터 2020년까지의 코딩 테스트와 알고리즘 대회의 기출문제를 수록하였다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 최근 5년간의 코딩 테스트 기출문제를 분석하여 필수 알고리즘을 8가지로 정리하였다고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 위 책의 소스코드는 &lt;a href=&quot;https://github.com/ndb796/python-for-coding-test&quot;&gt;https://github.com/ndb796/python-for-coding-test&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr style=&quot;border: none; font-size: 0px; line-height: 0; height: 20px; margin: 20px auto; background: url('https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg') 0px 0px / 200px 200px no-repeat #ffffff; cursor: pointer !important; width: 64px; color: #5c5c5c; font-family: 'Spoqa Han Sans', sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. Hello Coding 그림으로 개념을 이해하는 알고리즘 (&lt;a href=&quot;https://www.hanbit.co.kr/store/books/look.php?p_code=B5896248244&quot;&gt;https://www.hanbit.co.kr/store/books/look.php?p_code=B5896248244&lt;/a&gt;)&lt;/h3&gt;
&lt;figure id=&quot;og_1605251388515&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Hello Coding 그림으로 개념을 이해하는 알고리즘 - 비전공자도 볼 수 있는 헬로 코딩&quot; data-og-description=&quot;프로그래밍 세계로 초대하는 알고리즘 입문서이며 비전공자를 위한 헬로 코딩(Hello Coding) 시리즈 도서다. 중학생 이상의 수학 실력이라면 읽을 수 있는 쉬운 난이도의 알고리듬 도서로 전공자, &quot; data-og-host=&quot;www.hanbit.co.kr&quot; data-og-source-url=&quot;https://www.hanbit.co.kr/store/books/look.php?p_code=B5896248244&quot; data-og-url=&quot;https://www.hanbit.co.kr/store/books/look.php?p_code=B5896248244&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/o5PID/hyIepu74Mt/M0NoEMM4fcR9IKy9TX7yhK/img.jpg?width=202&amp;amp;height=260&amp;amp;face=0_0_202_260,https://scrap.kakaocdn.net/dn/bJQJu1/hyIejIssBK/ZLwIom2x8rWKK2NiBQ4k41/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/uWrCt/hyIejn8IeR/7KW2FIWfZCvcK0D99b3KP1/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066&quot;&gt;&lt;a href=&quot;https://www.hanbit.co.kr/store/books/look.php?p_code=B5896248244&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.hanbit.co.kr/store/books/look.php?p_code=B5896248244&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/o5PID/hyIepu74Mt/M0NoEMM4fcR9IKy9TX7yhK/img.jpg?width=202&amp;amp;height=260&amp;amp;face=0_0_202_260,https://scrap.kakaocdn.net/dn/bJQJu1/hyIejIssBK/ZLwIom2x8rWKK2NiBQ4k41/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/uWrCt/hyIejn8IeR/7KW2FIWfZCvcK0D99b3KP1/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Hello Coding 그림으로 개념을 이해하는 알고리즘 - 비전공자도 볼 수 있는 헬로 코딩&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;프로그래밍 세계로 초대하는 알고리즘 입문서이며 비전공자를 위한 헬로 코딩(Hello Coding) 시리즈 도서다. 중학생 이상의 수학 실력이라면 읽을 수 있는 쉬운 난이도의 알고리듬 도서로 전공자,&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.hanbit.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;- 중학교 수준의 수학 지식만 있으면 이해할 수 있도록 쉽게 설명했다고 한다.&lt;/p&gt;
&lt;p&gt;- 위 책의 소스코드는 &lt;a href=&quot;https://drive.google.com/file/d/0B0a9gIgaf4hXSUtGOXJoYVBCZGc/view&quot;&gt;https://drive.google.com/file/d/0B0a9gIgaf4hXSUtGOXJoYVBCZGc/view&lt;/a&gt;&lt;/p&gt;</description>
      <category>Etc</category>
      <category>bigo</category>
      <category>알고리즘</category>
      <category>자료구조</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>파이썬</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/61</guid>
      <comments>https://learning-sarah.tistory.com/61#entry61comment</comments>
      <pubDate>Fri, 13 Nov 2020 16:10:58 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 시각화 라이브러리 참고 사이트</title>
      <link>https://learning-sarah.tistory.com/59</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 데이터 투 비즈 (&lt;a href=&quot;https://www.data-to-viz.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.data-to-viz.com&lt;/a&gt;)&lt;/h3&gt;
&lt;figure id=&quot;og_1603988356781&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;From data to Viz | Find the graphic you need&quot; data-og-description=&quot;A classification of chart types based on their input data format.&quot; data-og-host=&quot;www.data-to-viz.com&quot; data-og-source-url=&quot;https://www.data-to-viz.com&quot; data-og-url=&quot;https://www.data-to-viz.com/data-to-viz.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bgsoK7/hyH2c5rjkr/0QXd9YqEc09lNVkFkSYrSk/img.png?width=1600&amp;amp;height=900&amp;amp;face=0_0_1600_900,https://scrap.kakaocdn.net/dn/dSFEPI/hyH3IVV8nk/sGhG6qziqWFT2ugqKGzDKK/img.png?width=568&amp;amp;height=568&amp;amp;face=0_0_568_568,https://scrap.kakaocdn.net/dn/bkzTs7/hyH18oqa2r/yDIukXwtklbIaAe3mS7ok1/img.png?width=223&amp;amp;height=200&amp;amp;face=0_0_223_200&quot;&gt;&lt;a href=&quot;https://www.data-to-viz.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.data-to-viz.com&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bgsoK7/hyH2c5rjkr/0QXd9YqEc09lNVkFkSYrSk/img.png?width=1600&amp;amp;height=900&amp;amp;face=0_0_1600_900,https://scrap.kakaocdn.net/dn/dSFEPI/hyH3IVV8nk/sGhG6qziqWFT2ugqKGzDKK/img.png?width=568&amp;amp;height=568&amp;amp;face=0_0_568_568,https://scrap.kakaocdn.net/dn/bkzTs7/hyH18oqa2r/yDIukXwtklbIaAe3mS7ok1/img.png?width=223&amp;amp;height=200&amp;amp;face=0_0_223_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;From data to Viz | Find the graphic you need&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;A classification of chart types based on their input data format.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.data-to-viz.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GviJM/btqL8lRwIFg/ywTiEa8AyKST7YYImc0APk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GviJM/btqL8lRwIFg/ywTiEa8AyKST7YYImc0APk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GviJM/btqL8lRwIFg/ywTiEa8AyKST7YYImc0APk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGviJM%2FbtqL8lRwIFg%2FywTiEa8AyKST7YYImc0APk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- 데이터 타입이 수치형 / 범주형 / 혼합형 / 시계열 등인지에 따라 어떤 그래프를 그리는 것이 좋을지 한눈에 보기 좋게 정리한 사이트&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Plotly (&lt;a href=&quot;https://plotly.com/python/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;plotly.com/python/&lt;/a&gt;&lt;a href=&quot;https://plotly.com/python/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MTz0K/btqL3wmMwcG/xpoWfwrTFPIjkM0KIxTKy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MTz0K/btqL3wmMwcG/xpoWfwrTFPIjkM0KIxTKy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MTz0K/btqL3wmMwcG/xpoWfwrTFPIjkM0KIxTKy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMTz0K%2FbtqL3wmMwcG%2FxpoWfwrTFPIjkM0KIxTKy0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eARBFi/btqL7wstmbw/RGh1VhhuluzSA9HMk4sPM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eARBFi/btqL7wstmbw/RGh1VhhuluzSA9HMk4sPM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eARBFi/btqL7wstmbw/RGh1VhhuluzSA9HMk4sPM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeARBFi%2FbtqL7wstmbw%2FRGh1VhhuluzSA9HMk4sPM1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d8ZnPE/btqL7QK02uy/afI1KgRurlnFGa9ftYwIyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d8ZnPE/btqL7QK02uy/afI1KgRurlnFGa9ftYwIyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d8ZnPE/btqL7QK02uy/afI1KgRurlnFGa9ftYwIyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd8ZnPE%2FbtqL7QK02uy%2FafI1KgRurlnFGa9ftYwIyK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1. R과 비슷하다&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;2. 인터랙티브 그래프를 만들기 쉽다 &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;3. 복잡한 그래프를 짧은 코드로 만들어준다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;의 장점을 가진 파이썬 시각화 라이브러리 Plotly. 파이썬으로 인터랙티브 그래프를 짧은 코드로 만들어준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Altair (&lt;a href=&quot;https://altair-viz.github.io&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;altair-viz.github.io&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q5HeI/btqL7P6pAiw/TSAoc3U5tv0kLKJTn9QGs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q5HeI/btqL7P6pAiw/TSAoc3U5tv0kLKJTn9QGs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q5HeI/btqL7P6pAiw/TSAoc3U5tv0kLKJTn9QGs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ5HeI%2FbtqL7P6pAiw%2FTSAoc3U5tv0kLKJTn9QGs1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1. 문법이 쉽다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;2. 데이터 집계가 편하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;3. 그래프 끼리의 연결이 편하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;는 장점을 가진 Altair. 그러나 디폴트 그래프가 Seaborn이나 Plotly만큼 그리 예쁘지 않다는 단점이 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. Folium (&lt;a href=&quot;https://python-visualization.github.io/folium/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;python-visualization.github.io/folium/&lt;/a&gt;)&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;600&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5qzGY/btqL7wTztLO/LGZH4ak6Uf1kcYs74RDXk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5qzGY/btqL7wTztLO/LGZH4ak6Uf1kcYs74RDXk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5qzGY/btqL7wTztLO/LGZH4ak6Uf1kcYs74RDXk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5qzGY%2FbtqL7wTztLO%2FLGZH4ak6Uf1kcYs74RDXk0%2Fimg.png&quot; width=&quot;600&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPvwH0/btqL3wtuwun/qy6KWh3TJlKggimb5hIZh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPvwH0/btqL3wtuwun/qy6KWh3TJlKggimb5hIZh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPvwH0/btqL3wtuwun/qy6KWh3TJlKggimb5hIZh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPvwH0%2FbtqL3wtuwun%2Fqy6KWh3TJlKggimb5hIZh1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;- 지도와 마커를 그리기 쉬운 인터랙티브 지도 시각화 라이브러리. 히트맵과 같은 플러그인도 제공해준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Etc</category>
      <category>Altair</category>
      <category>Folium</category>
      <category>matplotlib</category>
      <category>plotly</category>
      <category>seaborn</category>
      <category>시각화</category>
      <category>시각화라이브러리</category>
      <category>파이썬</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/59</guid>
      <comments>https://learning-sarah.tistory.com/59#entry59comment</comments>
      <pubDate>Fri, 30 Oct 2020 01:43:45 +0900</pubDate>
    </item>
    <item>
      <title>머신러닝 제로베이스 코드 구현 사이트</title>
      <link>https://learning-sarah.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ML from Scratch ( &lt;a href=&quot;https://github.com/eriklindernoren/ML-From-Scratch&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/eriklindernoren/ML-From-Scratch&lt;/a&gt;&amp;nbsp;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Machine Learning From Scratch
&lt;ul&gt;
&lt;li&gt;About&lt;/li&gt;
&lt;li&gt;Table of Contents&lt;/li&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;li&gt;Examples
&lt;ul&gt;
&lt;li&gt;Polynomial Regression&lt;/li&gt;
&lt;li&gt;Classification With CNN&lt;/li&gt;
&lt;li&gt;Density-Based Clustering&lt;/li&gt;
&lt;li&gt;Generating Handwritten Digits&lt;/li&gt;
&lt;li&gt;Deep Reinforcement Learning&lt;/li&gt;
&lt;li&gt;Image Reconstruction With RBM&lt;/li&gt;
&lt;li&gt;Evolutionary Evolved Neural Network&lt;/li&gt;
&lt;li&gt;Genetic Algorithm&lt;/li&gt;
&lt;li&gt;Association Analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Implementations
&lt;ul&gt;
&lt;li&gt;Supervised Learning
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Adaboost&lt;/li&gt;
&lt;li&gt;Bayesian Regression&lt;/li&gt;
&lt;li&gt;Decision Tree&lt;/li&gt;
&lt;li&gt;Gradient Boosting&lt;/li&gt;
&lt;li&gt;K-nearest Neighbors&lt;/li&gt;
&lt;li&gt;Linear Discriment Analysis&lt;/li&gt;
&lt;li&gt;Logistic Regression&lt;/li&gt;
&lt;li&gt;Multi Class Lda&lt;/li&gt;
&lt;li&gt;Naive Bayes&lt;/li&gt;
&lt;li&gt;Multi-Layer Perceptron&lt;/li&gt;
&lt;li&gt;Neuro-Evolution&lt;/li&gt;
&lt;li&gt;Particle Swam Evolution&lt;/li&gt;
&lt;li&gt;Perceptron&lt;/li&gt;
&lt;li&gt;Random Forest&lt;/li&gt;
&lt;li&gt;Regression&lt;/li&gt;
&lt;li&gt;Support Vector Machine&lt;/li&gt;
&lt;li&gt;Xgboost&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Unsupervised Learning
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Apriori&lt;/li&gt;
&lt;li&gt;Auto Encoder&lt;/li&gt;
&lt;li&gt;DBScan&lt;/li&gt;
&lt;li&gt;DCGAN&lt;/li&gt;
&lt;li&gt;FP Growth&lt;/li&gt;
&lt;li&gt;Gausian Mixture Model&lt;/li&gt;
&lt;li&gt;Generative Adversary Model&lt;/li&gt;
&lt;li&gt;Genetic Algorithm&lt;/li&gt;
&lt;li&gt;K-Means&lt;/li&gt;
&lt;li&gt;Partitioning Around Memoids&lt;/li&gt;
&lt;li&gt;Principal Component Analysis&lt;/li&gt;
&lt;li&gt;Restricted Boltzmann Machine&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Reinforcement Learning
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Deep Q Network&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Deep Learning
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Activation Functions&lt;/li&gt;
&lt;li&gt;Layers&lt;/li&gt;
&lt;li&gt;Loss Functions&lt;/li&gt;
&lt;li&gt;Neural Networks&lt;/li&gt;
&lt;li&gt;Optimizers&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Contact&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;</description>
      <category>Etc</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/36</guid>
      <comments>https://learning-sarah.tistory.com/36#entry36comment</comments>
      <pubDate>Thu, 23 Jul 2020 23:12:46 +0900</pubDate>
    </item>
    <item>
      <title>머신러닝/딥러닝 데이터셋 제공 사이트</title>
      <link>https://learning-sarah.tistory.com/2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;국내&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 네이버 데이터랩&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;http://datalab.naver.com/&quot;&gt;http://datalab.naver.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 공공데이터 포털&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;https://www.data.go.kr/&quot;&gt;https://www.data.go.kr/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. 서울시 데이터&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 서울연구데이터 서비스&amp;nbsp;&lt;a href=&quot;http://data.si.re.kr/&quot;&gt;http://data.si.re.kr/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 서울 열린데이터광장&amp;nbsp;&lt;a href=&quot;http://data.seoul.go.kr/&quot;&gt;http://data.seoul.go.kr/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 서울특별시 빅데이터 캠퍼스&amp;nbsp;&lt;a href=&quot;https://bigdata.seoul.go.kr/data/selectPageListDataSet.do?r_id=P210&quot;&gt;https://bigdata.seoul.go.kr/data/selectPageListDataSet.do?r_id=P210&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;4. 빅데이터 분석 최신 동향 및 실습 데이터 제공&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;https://kbig.kr/#none&quot;&gt;https://kbig.kr/#none&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;5. 금융관련 데이터&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;- 금융통계정보시스템&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;http://fisis.fss.or.kr/&quot;&gt;http://fisis.fss.or.kr/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;- 금융위원회&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;http://www.fsc.go.kr/&quot;&gt;http://www.fsc.go.kr/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;- 한국금융연구원&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;http://www.kif.re.kr/&quot;&gt;http://www.kif.re.kr/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 한국거래소 &lt;a href=&quot;http://www.krx.co.kr/sns/sta/sta_l_002.jsp&quot;&gt;http://www.krx.co.kr/sns/sta/sta_l_002.jsp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;6. 국가 통계 포털&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;http://www.kosis.kr/&quot;&gt;http://www.kosis.kr/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;7. 경제 통계&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;http://ecos.bok.or.kr/&quot;&gt;http://ecos.bok.or.kr/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;8. 보건&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 보건 통계&amp;nbsp;&lt;a href=&quot;http://stat.mw.go.kr/&quot;&gt;http://stat.mw.go.kr/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 국민건강보험공단&amp;nbsp;&lt;a href=&quot;https://nhiss.nhis.or.kr/&quot;&gt;https://nhiss.nhis.or.kr/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 심평원&amp;nbsp;&lt;a href=&quot;http://opendata.hira.or.kr/home.do#none&quot;&gt;http://opendata.hira.or.kr/home.do#none&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;9. 교육 통계&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;http://cesi.kedi.re.kr/&quot;&gt;http://cesi.kedi.re.kr/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;10. 의료 통계&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;https://www.hira.or.kr/&quot;&gt;https://www.hira.or.kr/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;11. 특허 통계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 키프리스 &lt;a href=&quot;http://www.kipris.or.kr&quot;&gt;http://www.kipris.or.kr&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 윕스온 &lt;a href=&quot;http://www.wipson.com&quot;&gt;http://www.wipson.com&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 위즈도메인 &lt;a href=&quot;http://www.wisdomain.com&quot;&gt;http://www.wisdomain.com&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;12. 공동주택 관리 정보 시스템&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;http://www.k-apt.go.kr/&quot;&gt;http://www.k-apt.go.kr/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;13. MDIS (Micro Data Integrated Service)&lt;/b&gt; : &lt;a href=&quot;https://mdis.kostat.go.kr/&quot;&gt;https://mdis.kostat.go.kr/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;14. SKT BigData Hub&lt;/b&gt; &lt;a href=&quot;https://www.bigdatahub.co.kr/&quot;&gt;https://www.bigdatahub.co.kr/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;15. AI 오픈이노베이션 허브&lt;/b&gt; &lt;a href=&quot;https://www.aihub.or.kr/&quot;&gt;https://www.aihub.or.kr/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;해외&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. KDnuggets&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;http://www.kdnuggets.com/datasets/index.html&quot;&gt;http://www.kdnuggets.com/datasets/index.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. Kaggle&lt;/b&gt; &lt;a href=&quot;https://www.kaggle.com/&quot;&gt;https://www.kaggle.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. Data Science Central&lt;/b&gt; &lt;a href=&quot;http://www.datasciencecentral.com/profiles/blogs/big-data-sets-available-for-free&quot;&gt;http://www.datasciencecentral.com/profiles/blogs/big-data-sets-available-for-free&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;4. UCI Machine Learning Repository&lt;/b&gt; &lt;a href=&quot;http://www.ics.uci.edu/~mlearn/MLRepository.html&quot;&gt;http://www.ics.uci.edu/~mlearn/MLRepository.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;5. OECD Health Data&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;http://titania.sourceoecd.org/vl=3705678/cl=20/nw=1/rpsv/statistic/s37_about.htm?jnlissn=99991012&quot;&gt;http://titania.sourceoecd.org/vl=3705678/cl=20/nw=1/rpsv/statistic/s37_about.htm?jnlissn=99991012&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;6. Awesome Public Datasets&lt;/b&gt; &lt;a href=&quot;https://github.com/awesomedata/awesome-public-datasets&quot;&gt;https://github.com/awesomedata/awesome-public-datasets&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;7. Google AI Datasets&lt;/b&gt; &lt;a href=&quot;https://ai.google/tools/datasets&quot;&gt;https://ai.google/tools/datasets&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;8. Google Dataset Search&lt;/b&gt; &lt;a href=&quot;https://toolbox.google.com/datasetsearch&quot;&gt;https://toolbox.google.com/datasetsearch&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;사이트 출처는&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;연세대학교 산업공학과&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;데이터마이닝 이론 및 응용&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;수업 참고 자료에서 나왔습니다&lt;/span&gt;&lt;/p&gt;</description>
      <category>Etc</category>
      <category>데이터마이닝</category>
      <category>데이터셋</category>
      <category>딥러닝</category>
      <category>머신러닝</category>
      <category>빅데이터</category>
      <author>Kim Sara</author>
      <guid isPermaLink="true">https://learning-sarah.tistory.com/2</guid>
      <comments>https://learning-sarah.tistory.com/2#entry2comment</comments>
      <pubDate>Wed, 14 Aug 2019 02:46:02 +0900</pubDate>
    </item>
  </channel>
</rss>