<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>로보틱스 연구일지</title>
    <link>https://perconsi.tistory.com/</link>
    <description>Robotics 연구 일지</description>
    <language>ko</language>
    <pubDate>Sat, 27 Jun 2026 16:47:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Prcnsi</managingEditor>
    <image>
      <title>로보틱스 연구일지</title>
      <url>https://tistory1.daumcdn.net/tistory/4717782/attach/740c64379d6f4ecab4f9aebbb83d75b1</url>
      <link>https://perconsi.tistory.com</link>
    </image>
    <item>
      <title>[Robotics] SO(2)/SO(3) 회전행렬, 왜 이렇게 생겼을까? &amp;mdash; 기저 벡터 하나로 전부 유도하기</title>
      <link>https://perconsi.tistory.com/138</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;들어가기에 앞서, 회전의 양은 각도 &amp;theta; 하나로 표현할 수 있는데 왜 굳이 회전행렬을 쓸까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 이유는 &amp;theta;는 &quot;얼마나 돌렸는지&quot;만 알려줄 뿐, &lt;u&gt;벡터를 실제로 회전시키는 연산 자체를 담고 있지 않기 때문&lt;/u&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벡터 v를 &amp;theta;만큼 회전시킨 결과 v'을 구하려면, &amp;theta;만으로는 매번 원래 각도를 구하고 삼각함수를 다시 풀어야 한다.&lt;br /&gt;&lt;br /&gt;하지만 회전행렬이 있으면 \(v' = R \cdot v\), 행렬곱 한 번이면 끝이다. 더 중요한 강점은 &lt;b&gt;합성(composition)&lt;/b&gt;이다. 회전 A를 한 다음 회전 B를 하고 싶으면 \(B \cdot A\)로 합성된다. 역변환은 \(R^T\)이다. 이 연산 규칙이 2D든 3D든, 심지어 더 높은 차원이든 동일한 문법으로 동작한다.&lt;br /&gt;&lt;br /&gt;반면 각도(&amp;theta;) 기반 표현은 차원이 올라가면 합성 연산이 깨진다. SO(2)에서는 \(\theta_1 + \theta_2\)로 두 회전의 합성이 되지만, &lt;u&gt;&lt;b&gt;SO(3)에서는&amp;nbsp;Euler&amp;nbsp;angle&amp;nbsp;세&amp;nbsp;개끼리&amp;nbsp;단순&amp;nbsp;덧셈으로&amp;nbsp;합성할&amp;nbsp;수가&amp;nbsp;없다&lt;/b&gt;&lt;/u&gt;.&amp;nbsp;Euler&amp;nbsp;angle&amp;nbsp;&lt;u&gt;합성&amp;nbsp;공식&amp;nbsp;자체가&amp;nbsp;매우&amp;nbsp;복잡&lt;/u&gt;해지고,&amp;nbsp;&lt;u&gt;gimbal lock이라는 특이점 문제까지 발생&lt;/u&gt;하기 때문이다.&lt;br /&gt;&lt;br /&gt;하지만 행렬 표현은 차원에 무관하게 동일하게 적용이 가능하기 때문에 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;이런 문제가 없다.&lt;/span&gt;&lt;br /&gt;&lt;br /&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;&lt;br /&gt;&lt;br /&gt;회전행렬이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회전행렬(Rotation Matrix)은 3차원 공간에서 물체나 좌표계의 회전을 표현하는 데 사용되는 직교행렬이다.&amp;nbsp;&lt;br /&gt;회전행렬&amp;nbsp;R은&amp;nbsp;기준&amp;nbsp;좌표계에서&amp;nbsp;회전된&amp;nbsp;좌표계로의&amp;nbsp;벡터&amp;nbsp;변환&amp;nbsp;역할을&amp;nbsp;하며,&amp;nbsp;행렬의&amp;nbsp;행과&amp;nbsp;열은&amp;nbsp;이&amp;nbsp;두&amp;nbsp;좌표계의&amp;nbsp;축들이&amp;nbsp;서로&amp;nbsp;어떻게&amp;nbsp;정렬되어&amp;nbsp;있는지를&amp;nbsp;나타낸다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. 행과 열의 의미&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;열(column)의 의미&lt;/b&gt;: 회전행렬의 각 열은 &quot;&lt;u&gt;&lt;b&gt;새로운 좌표계의 단위 축 벡터가 기준 좌표계에서 어떻게 보이는지&lt;/b&gt;&lt;/u&gt;&quot;를 나타낸다. 즉, 각 기저 벡터가 회전 후 어디로 가는지를 직접 보여준다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;행(row)의 의미:&lt;/b&gt; 회전행렬의 각 행은 &quot;&lt;u&gt;&lt;b&gt;기준 좌표계의 단위 축벡터가 새로운 좌표계에서 어떻게 보이는지&lt;/b&gt;&lt;/u&gt;&quot;를 나타낸다. 즉, 출력의 각 성분이 입력 좌표의 어떤 선형결합으로 만들어지는지를 보여준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서는 &lt;u&gt;열로 읽는 것이 훨씬 직관적&lt;/u&gt;이다. &quot;&lt;u&gt;이 회전이 각 축을 어디로 보내는가&lt;/u&gt;&quot;가 바로 보이기 때문이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Special Orthogonal Group &amp;mdash; SO(2)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 정의&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SO(2)는 2D 평면에서 원점을 중심으로 한 모든 회전의 집합으로, 자유도(DOF) = 1. 각도 &amp;theta; 하나로 완전히 결정된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$SO(2) = \{ R \in \mathbb{R}^{2 \times 2} \mid R^T R = I, \; \det(R) = 1 \}$$&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;b&gt;2. 기하학적 유도&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;회전행렬의 각 원소를 외울 필요 없이, 하나의 원리로 전부 유도할 수 있다:&lt;br /&gt;&amp;gt; 행렬의 각 열 = 해당 기저 벡터가 회전 후 도착하는 위치&lt;br /&gt;&lt;br /&gt;첫째 열 &amp;mdash; \(e_1 = [1, 0]\)을 &amp;theta;만큼 반시계 회전하면,&amp;nbsp; \(e_1\)은 단위원 위의 0&amp;deg; 위치에 있다. &amp;theta;만큼 반시계로 회전하면 단위원 위에서 &amp;theta; 위치로 이동한다. 삼각함수의 정의에 의해, 그 좌표는 다음과 같다: 이것이 행렬의 &lt;b&gt;첫째 열&lt;/b&gt;이 된다.&lt;br /&gt;$$e_1 \rightarrow (\cos\theta, \; \sin\theta)$$&lt;br /&gt;&lt;br /&gt;둘째 열 &amp;mdash; \(e_2 = [0, 1]\)을 &amp;theta;만큼 반시계 회전하면,&amp;nbsp; \(e_2\)는 단위원 위의 90&amp;deg; 위치에 있다. &amp;theta;만큼 더 회전하면 (90&amp;deg; + &amp;theta;) 위치로 이동하며, 그 좌표는 다음과 같다: 이것이 행렬의 &lt;b&gt;둘째 열&lt;/b&gt;이 된다.&lt;br /&gt;$$e_2 \rightarrow (\cos(90&amp;deg;+\theta), \; \sin(90&amp;deg;+\theta)) = (-\sin\theta, \; \cos\theta)$$&lt;br /&gt;&lt;br /&gt;그래서 결과적으로, 두 열벡터를 나란히 세우면 SO(2) 회전행렬이 완성된다: 각 원소는 단위원 위에서 기저 벡터를 &amp;theta;만큼 돌렸을 때의 좌표, 즉&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;삼각함수의 정의 그 자체&lt;/b&gt;에서 나온 것이다.&lt;br /&gt;$$R(\theta) = \begin{bmatrix} \cos\theta &amp;amp; -\sin\theta \\ \sin\theta &amp;amp; \cos\theta \end{bmatrix}$$&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;1019&quot; data-origin-height=&quot;661&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnAJbV/dJMcabRiz7E/XmVDPDJzAGvlOpQXhpdZnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnAJbV/dJMcabRiz7E/XmVDPDJzAGvlOpQXhpdZnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnAJbV/dJMcabRiz7E/XmVDPDJzAGvlOpQXhpdZnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnAJbV%2FdJMcabRiz7E%2FXmVDPDJzAGvlOpQXhpdZnk%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;538&quot; height=&quot;349&quot; data-origin-width=&quot;1019&quot; data-origin-height=&quot;661&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;&lt;br /&gt;&lt;b&gt;3. 주요 성질&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;: \(R(\alpha) \cdot R(\beta) = R(\alpha + \beta)\). 두 회전의 합성은 행렬곱이다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;역변환&lt;/b&gt;: \(R(\theta)^{-1} = R(-\theta) = R(\theta)^T\). 직교행렬이므로 전치가 곧 역행렬이다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;교환법칙&lt;/b&gt; &lt;b&gt;성립&lt;/b&gt;: \(R(\alpha) \cdot R(\beta) = R(\beta) \cdot R(\alpha)\). SO(2)는 commutative하다 &amp;mdash; 이는 SO(3)와의 중요한 차이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Special Orthogonal Group &amp;mdash; SO(3)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 정의&lt;/b&gt;&lt;br /&gt;SO(3)는 3D 공간에서 원점을 중심으로 한 모든 회전의 집합으로, 3&amp;times;3 행렬의 파라미터 9개에서 \(R^T R = I\) 조건이 6개의 독립 제약을 주므로, DOF = 9 &amp;minus; 6 = **3**이다.&lt;br /&gt;$$SO(3)&amp;nbsp;=&amp;nbsp;\{&amp;nbsp;R&amp;nbsp;\in&amp;nbsp;\mathbb{R}^{3&amp;nbsp;\times&amp;nbsp;3}&amp;nbsp;\mid&amp;nbsp;R^T&amp;nbsp;R&amp;nbsp;=&amp;nbsp;I,&amp;nbsp;\;&amp;nbsp;\det(R)&amp;nbsp;=&amp;nbsp;1&amp;nbsp;\}$$&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. SO(2)와의 핵심 차이&lt;/b&gt;&lt;br /&gt;SO(2)는&amp;nbsp;&amp;theta;&amp;nbsp;하나로&amp;nbsp;유일하게&amp;nbsp;결정되는&amp;nbsp;단일&amp;nbsp;표준형이&amp;nbsp;존재했다.&amp;nbsp;그러나&amp;nbsp;SO(3)는&amp;nbsp;DOF&amp;nbsp;=&amp;nbsp;3이기&amp;nbsp;때문에,&amp;nbsp;&quot;어떤&amp;nbsp;축을&amp;nbsp;중심으로&amp;nbsp;얼마나&amp;nbsp;회전하느냐&quot;를&amp;nbsp;지정해야&amp;nbsp;한다.&amp;nbsp;따라서&amp;nbsp;**단일&amp;nbsp;&amp;theta;&amp;nbsp;하나로&amp;nbsp;쓸&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;보편적인&amp;nbsp;3&amp;times;3&amp;nbsp;행렬&amp;nbsp;형태가&amp;nbsp;존재하지&amp;nbsp;않으며**,&amp;nbsp;대신&amp;nbsp;세&amp;nbsp;가지&amp;nbsp;기본&amp;nbsp;축&amp;nbsp;회전(\(R_x,&amp;nbsp;R_y,&amp;nbsp;R_z\))이&amp;nbsp;빌딩&amp;nbsp;블록이&amp;nbsp;된다.&lt;br /&gt;&lt;br /&gt;또한&amp;nbsp;SO(3)는&amp;nbsp;**non-commutative(비가환)**이다.&amp;nbsp;x축&amp;nbsp;90&amp;deg;&amp;nbsp;회전&amp;nbsp;후&amp;nbsp;z축&amp;nbsp;90&amp;deg;&amp;nbsp;회전&amp;nbsp;&amp;ne;&amp;nbsp;z축&amp;nbsp;90&amp;deg;&amp;nbsp;회전&amp;nbsp;후&amp;nbsp;x축&amp;nbsp;90&amp;deg;&amp;nbsp;회전이다.&amp;nbsp;이는&amp;nbsp;로봇&amp;nbsp;제어에서&amp;nbsp;회전&amp;nbsp;순서가&amp;nbsp;결과를&amp;nbsp;바꾼다는&amp;nbsp;실질적&amp;nbsp;의미를&amp;nbsp;가진다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. 기본 축 회전행렬 유도&lt;/b&gt;&lt;br /&gt;SO(2)와 동일한 원리를 적용한다: &lt;b&gt;각 열 = 해당 기저 벡터가 회전 후 도착하는 위치&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;\(R_z(\theta)\) &amp;mdash; z축 회전: xy 평면에서 회전, z축이 고정되고, x축과 y축이 xy 평면에서 회전한다. 양의 회전 방향은 x &amp;rarr; y이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$R_z(\theta)&amp;nbsp;=&amp;nbsp;\begin{bmatrix}&amp;nbsp;\cos\theta&amp;nbsp;&amp;amp;&amp;nbsp;-\sin\theta&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;\\&amp;nbsp;\sin\theta&amp;nbsp;&amp;amp;&amp;nbsp;\cos\theta&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;\\&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;1&amp;nbsp;\end{bmatrix}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;\(R_x(\theta)\) &amp;mdash; x축 회전: yz 평면에서 회전, x축이 고정되고, y축과 z축이 yz 평면에서 회전한다. 양의 회전 방향은 y &amp;rarr; z이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$R_x(\theta)&amp;nbsp;=&amp;nbsp;\begin{bmatrix}&amp;nbsp;1&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;\\&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;\cos\theta&amp;nbsp;&amp;amp;&amp;nbsp;-\sin\theta&amp;nbsp;\\&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;\sin\theta&amp;nbsp;&amp;amp;&amp;nbsp;\cos\theta&amp;nbsp;\end{bmatrix}$$&lt;/p&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;\(R_y(\theta)\) &amp;mdash; y축 회전: xz 평면에서 회전, y축이 고정되고, x축과 z축이 xz 평면에서 회전한다. 양의 회전 방향은 z &amp;rarr; x이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$R_y(\theta)&amp;nbsp;=&amp;nbsp;\begin{bmatrix}&amp;nbsp;\cos\theta&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;\sin\theta&amp;nbsp;\\&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;1&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;\\&amp;nbsp;-\sin\theta&amp;nbsp;&amp;amp;&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;nbsp;\cos\theta&amp;nbsp;\end{bmatrix}$$&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1684&quot; data-origin-height=&quot;589&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lXIur/dJMb990jcmH/8k7TFksj4rviu2JFG5K8gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lXIur/dJMb990jcmH/8k7TFksj4rviu2JFG5K8gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lXIur/dJMb990jcmH/8k7TFksj4rviu2JFG5K8gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlXIur%2FdJMb990jcmH%2F8k7TFksj4rviu2JFG5K8gk%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;1684&quot; height=&quot;589&quot; data-origin-width=&quot;1684&quot; data-origin-height=&quot;589&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>로보틱스</category>
      <category>SO(2)</category>
      <category>SO(3)</category>
      <category>공간표현</category>
      <category>기하학</category>
      <category>지오메트리</category>
      <category>회전행렬</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/138</guid>
      <comments>https://perconsi.tistory.com/138#entry138comment</comments>
      <pubDate>Sat, 11 Apr 2026 19:47:04 +0900</pubDate>
    </item>
    <item>
      <title>Jetson orin nx 다운그레이드하는 방법, Recovery mode 진입 방법</title>
      <link>https://perconsi.tistory.com/137</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;nvidia daneLLL씨의 답변에 따라 우선 저 핀들을 찾아줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://forums.developer.nvidia.com/t/unable-to-enter-recovery-mode-on-jetson-orin-nx/322718&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://forums.developer.nvidia.com/t/unable-to-enter-recovery-mode-on-jetson-orin-nx/322718&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;924&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cp50z2/dJMcahv7Nf6/j3nMmF08IMtMZj0nR56pG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cp50z2/dJMcahv7Nf6/j3nMmF08IMtMZj0nR56pG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cp50z2/dJMcahv7Nf6/j3nMmF08IMtMZj0nR56pG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp50z2%2FdJMcahv7Nf6%2Fj3nMmF08IMtMZj0nR56pG0%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;617&quot; height=&quot;490&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;924&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;Jetson orin nx를 다운그레이드하기 위해서는 먼저 뚜껑을 열고 요부분을 찾아줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 위에서 두번째 세번째 핀 을 누르면 된다네요. 저는 저 Force Recovery (FC REC) 글씨가 안보여서 쿨링팬도 따봤는데 굳이 안 따도 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1F5RH/dJMcajtTmHU/NJcfoiJifgx5plcuy2B7R0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1F5RH/dJMcajtTmHU/NJcfoiJifgx5plcuy2B7R0/img.png&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;796&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.6403%; margin-right: 10px;&quot; data-widthpercent=&quot;51.24&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1F5RH/dJMcajtTmHU/NJcfoiJifgx5plcuy2B7R0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1F5RH%2FdJMcajtTmHU%2FNJcfoiJifgx5plcuy2B7R0%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;716&quot; height=&quot;796&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qtVQZ/dJMcacn3jbj/6lDtWKlerISQKyEALd6yjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qtVQZ/dJMcacn3jbj/6lDtWKlerISQKyEALd6yjk/img.png&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;820&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.1969%;&quot; data-widthpercent=&quot;48.76&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qtVQZ/dJMcacn3jbj/6lDtWKlerISQKyEALd6yjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqtVQZ%2FdJMcacn3jbj%2F6lDtWKlerISQKyEALd6yjk%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;702&quot; height=&quot;820&quot;/&gt;&lt;/span&gt;&lt;/div&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;h3 data-ke-size=&quot;size23&quot;&gt;다운그레이드 순서&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Jetson 전원을 빼줍니다&lt;/li&gt;
&lt;li&gt;저 두핀(&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;GND, REC&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;을 동시에 누른 상태로 전원을 연결하고 3초정도 계속 눌러줍니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;(option) 연결된 모니터에서 화면이 안 나오고, 쿨링팬이 멈춘다면 성공적으로 recovery 모드에 들어간 것입니다.&lt;/li&gt;
&lt;li&gt;20.04 이하 버전의 우분투가 설치된 호스트 pc에 jetson을 연결해줍니다. (이때 사진에 보이는 jetson의 c포트와, usb 3.0을 호스트 pc에 연결하는 것을 권장드립니다)&lt;/li&gt;
&lt;li&gt;host pc에서 lsusb에서 Nvidia corp가 인식되면 거의 다왔습니다&amp;nbsp;&lt;/li&gt;
&lt;li&gt;host pc에서 nvidia sdk manager에 들어가 연결한 jetson과 다운그레이드할 버전을 선택하고 step2로 넘어갑니다&lt;/li&gt;
&lt;li&gt;step2에서 오른쪽 아래 체크박스(Download now Install later)를 꼭 선택 해제해줍니다.&lt;/li&gt;
&lt;li&gt;그리고 새 ubuntu의 계정명과 비번을 입력하고, flash를 누르면 다운그레이드가 시작됩니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cs3gYM/dJMcadtGInm/oYAow8iWm85uVLk1n9JVy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cs3gYM/dJMcadtGInm/oYAow8iWm85uVLk1n9JVy0/img.png&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;829&quot; data-is-animation=&quot;false&quot; style=&quot;width: 31.246%; margin-right: 10px;&quot; data-widthpercent=&quot;31.99&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cs3gYM/dJMcadtGInm/oYAow8iWm85uVLk1n9JVy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcs3gYM%2FdJMcadtGInm%2FoYAow8iWm85uVLk1n9JVy0%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;1016&quot; height=&quot;829&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qrKpj/dJMcaaX4SvL/G6JW9B938RkuaXECQDGTiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qrKpj/dJMcaaX4SvL/G6JW9B938RkuaXECQDGTiK/img.png&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;748&quot; data-is-animation=&quot;false&quot; style=&quot;width: 34.1865%; margin-right: 10px;&quot; data-widthpercent=&quot;35&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qrKpj/dJMcaaX4SvL/G6JW9B938RkuaXECQDGTiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqrKpj%2FdJMcaaX4SvL%2FG6JW9B938RkuaXECQDGTiK%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;1003&quot; height=&quot;748&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcYBzA/dJMcah3XXjG/Zp0nBpAvwu1QhHfKwmalok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcYBzA/dJMcah3XXjG/Zp0nBpAvwu1QhHfKwmalok/img.png&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;786&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.2418%;&quot; data-widthpercent=&quot;33.01&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcYBzA/dJMcah3XXjG/Zp0nBpAvwu1QhHfKwmalok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcYBzA%2FdJMcah3XXjG%2FZp0nBpAvwu1QhHfKwmalok%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;994&quot; height=&quot;786&quot;/&gt;&lt;/span&gt;&lt;/div&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;이상입니다:)&lt;/p&gt;</description>
      <category>기타</category>
      <category>Jetson orin 다운그레이드</category>
      <category>jetson 다운그레이드</category>
      <category>핀 recovery mode</category>
      <category>핀으로 리커버리 모드</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/137</guid>
      <comments>https://perconsi.tistory.com/137#entry137comment</comments>
      <pubDate>Thu, 4 Dec 2025 09:48:37 +0900</pubDate>
    </item>
    <item>
      <title>모델 학습용 데이터셋 vs 벤치마크 데이터셋</title>
      <link>https://perconsi.tistory.com/134</link>
      <description>&lt;h3 data-end=&quot;50&quot; data-start=&quot;30&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;결론 요약&lt;br /&gt;&lt;/b&gt;&lt;/h3&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; &lt;u&gt;&lt;b&gt;모델을 새롭게 학습시키기 위한&lt;/b&gt;&lt;/u&gt; 다양한 센서, 레이블을 포함한 &lt;b&gt;데이터셋&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;벤치마크 데이터셋&lt;/b&gt;: &lt;u&gt;&lt;b&gt;기존 여러 모델들의 성능&lt;/b&gt;을 공정하게 &lt;b&gt;평가하기 위한&lt;/b&gt;&lt;/u&gt; 표준 실험 환경을 제공하기 위한 &lt;b&gt;데이터셋&lt;/b&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;네비게이션 task에서는 다음과 같이 해석 가능:&lt;/p&gt;
&lt;h3 data-end=&quot;50&quot; data-start=&quot;30&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;모델 학습용 데이터셋&lt;/b&gt;:&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;585&quot; data-start=&quot;51&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;169&quot; data-start=&quot;51&quot;&gt;&lt;b&gt;목적&lt;/b&gt;: 모델을 &lt;b&gt;처음부터 학습&lt;/b&gt;시키기 위한 데이터셋,&amp;nbsp; &lt;b&gt;로봇&lt;/b&gt;이나 &lt;b&gt;AI 에이전트&lt;/b&gt;가 &lt;b&gt;스스로 목표를 찾고, 경로를 탐색할 수 있도록&lt;/b&gt; 훈련&lt;/li&gt;
&lt;li data-end=&quot;585&quot; data-start=&quot;170&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;585&quot; data-start=&quot;182&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;332&quot; data-start=&quot;182&quot;&gt;&lt;b&gt;다양한 센서 입력&lt;/b&gt;(RGB 이미지, LiDAR 등)과 &lt;b&gt;정답 레이블&lt;/b&gt;(예: 목표 객체의 위치, 경로)을 제공, 이렇게 센서 데이터와 &lt;b&gt;정답&lt;/b&gt;이 동기화(synced)되어 있어서 모델이 &lt;b&gt;정확히 무엇을 해야 하는지&lt;/b&gt; 학습 가능.&lt;/li&gt;
&lt;li data-end=&quot;463&quot; data-start=&quot;335&quot;&gt;예를 들어, &lt;b&gt;Object Goal Navigation &lt;/b&gt;데이터셋이면, 목표 객체의 위치를 정확히 알아야 하므로, &lt;b&gt;RGB 이미지&lt;/b&gt;와 &lt;b&gt;정답 경로&lt;/b&gt;를 함께 제공하여 모델이 &lt;b&gt;목표 객체를 찾는 경로&lt;/b&gt;를 학습 가능.&lt;/li&gt;
&lt;li data-end=&quot;585&quot; data-start=&quot;466&quot;&gt;&lt;b&gt;데이터의 다양성&lt;/b&gt;(예: 다양한 환경, 다양한 출발 위치 등)과 &lt;b&gt;정답 경로&lt;/b&gt;가 중요함. 모델이 &lt;b&gt;어떤 환경에서든&lt;/b&gt; 잘 동작할 수 있도록 &lt;b&gt;많은 variation&lt;/b&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;h3 data-end=&quot;609&quot; data-start=&quot;587&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;벤치마크 평가용 데이터셋&lt;/b&gt;:&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1040&quot; data-start=&quot;610&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;669&quot; data-start=&quot;610&quot;&gt;&lt;b&gt;목적&lt;/b&gt;: 이미 &lt;b&gt;학습된 모델의 성능을 비교&lt;/b&gt;하거나 &lt;b&gt;성능을 평가&lt;/b&gt;하기 위한 데이터셋&lt;/li&gt;
&lt;li data-end=&quot;1040&quot; data-start=&quot;670&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1040&quot; data-start=&quot;682&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;772&quot; data-start=&quot;682&quot;&gt;&lt;b&gt;고정된 시나리오&lt;/b&gt;와 &lt;b&gt;표준화된 실험 환경&lt;/b&gt;을 제공, &lt;u&gt;여러 연구자가 동일한 조건에서 모델을 테스트&lt;/u&gt;하고 &lt;u&gt;성능 비교 가능&lt;/u&gt;&lt;/li&gt;
&lt;li data-end=&quot;955&quot; data-start=&quot;775&quot;&gt;&lt;b&gt;시뮬레이션 기반&lt;/b&gt;으로 제공되는 경우가 많음.&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;1040&quot; data-start=&quot;958&quot;&gt;&lt;b&gt;테스트 케이스&lt;/b&gt;가 다양하게 준비되어 있으며, 연구자는 &lt;b&gt;기존 모델&lt;/b&gt;이 어떤 환경에서도 잘 동작하는지 &lt;b&gt;성능을 평가 가능&lt;/b&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;h3 data-end=&quot;1082&quot; data-start=&quot;1042&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;차이점&lt;/b&gt;:&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1363&quot; data-start=&quot;1083&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1214&quot; data-start=&quot;1083&quot;&gt;학습용 데이터셋은 모델이&lt;u&gt; 처음부터 학습&lt;/u&gt;할 수 있도록, 센서 &lt;u&gt;입력과 정답이 잘 정리된 대용량 데이터를 제공&lt;/u&gt;&lt;/li&gt;
&lt;li data-end=&quot;1363&quot; data-start=&quot;1215&quot;&gt;반면 벤치마크 평가용 데이터셋은 &lt;u&gt;이미 학습된 모델의 성능을 비교&lt;/u&gt;하고 &lt;u&gt;성능 평가를 위한 표준화된 환경을 제공&lt;/u&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>인공지능 연구</category>
      <category>benchmark dataset이란</category>
      <category>모델 학습용 데이터셋</category>
      <category>벤치마크 데이터셋</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/134</guid>
      <comments>https://perconsi.tistory.com/134#entry134comment</comments>
      <pubDate>Sun, 11 May 2025 20:20:30 +0900</pubDate>
    </item>
    <item>
      <title>Object Goal Navigation 연구의 주요 목적과 데이터셋 (Gibson, MP3D, HM3D)</title>
      <link>https://perconsi.tistory.com/133</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Object Goal Navigation(OGN) 연구의 주요 목적&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OGN의 최근 연구들은 모두 1) 어떻게 프론티어를 선정할 것인지와, 2) 어떻게 목표 위치를 예측할 것인지에 초점을 두고 있다.&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;목적지까지 경로를 찾기 위해 우선적으로 이동할 &lt;b&gt;프론티어(frontier)를 선정&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Object Goal Navigation(OGN) 최신 연구 동향&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크게 지도 기반 프론티어 탐색, 시맨틱 지도 예측 및 추론, 학습 기반(RL/representation learning), 계층적/장면-그래프 탐색으로 나누어진다.&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 89px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 30.1163%; height: 21px;&quot;&gt;분류&lt;/td&gt;
&lt;td style=&quot;width: 69.8837%; height: 21px;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;지도 기반 프론티어 탐색&lt;/td&gt;
&lt;td style=&quot;width: 69.8837%; height: 17px;&quot;&gt;▪️에이전트가 지역 지도를 구축하여 미지 영역의 경계(frontier)를 탐색&lt;br /&gt;▪️시맨틱 정보를 이용해 프론티어(목표 객체)가 있을 법한 위치를 추론하여 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;시맨틱 지도 예측 및 추론&lt;/td&gt;
&lt;td style=&quot;width: 69.8837%; height: 17px;&quot;&gt;▪️&amp;nbsp;환경에 대한 사전 지식과 과거 탐색으로 얻은 관측으로, 목표 객체가 있을 법한 위치를 예측&lt;br /&gt;예시) 현재까지 관측된 내용을 기반으로 나머지 지도의 영역을 예측 =&amp;gt; 목적지로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;학습 기반 (강화학습/표현학습)&lt;/td&gt;
&lt;td style=&quot;width: 69.8837%; height: 17px;&quot;&gt;▪️&amp;nbsp;강화학습 기반: 명시적인 지도 구축 대신 reward/penalty를 통해 경험을 통한 학습&lt;br /&gt;▪️&amp;nbsp;표현학습 기반: 시맨틱 정보를 활용하여 목적지/프론티어를 예측&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;계층적/장면-그래프(scene-graph)&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 69.8837%; height: 17px;&quot;&gt;▪️공간적 객체의 관계를 장면 그래프(scene-graph)로 표현해, 탐색 범위를 좁히고, 효율 높임&lt;br /&gt;예시) &quot;보통 침대는 침실에 있다&quot;와 같은 지식을 활용해, 목표 객체가 있는 방의 확률을 추론&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Object Goal Navigation(OGN) 연구에 주로 쓰이는 데이터셋&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모두 실제 실내 환경을 3D로 스캔한 시뮬레이션 데이터셋으로, 시뮬레이션 환경, &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;시맨틱 레이블, 객체 위치가 &lt;/span&gt;주어져서 연구자들이 출발위치와 목표 객체를 설정 흐, 그에 맞게 다양한 연구를 수행 가능.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 72px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 8.56584%; height: 21px;&quot;&gt;&lt;b&gt;데이터셋명&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.1008%; height: 21px;&quot;&gt;&lt;b&gt;정보&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 8.56584%; height: 17px;&quot;&gt;&lt;a href=&quot;http://gibsonenv.stanford.edu/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Gibson&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.1008%; height: 17px;&quot;&gt;물리 기반 시뮬레이션 실험 가능(충돌 처리, 동적 물체 상호작용), 시맨틱 맵, 정답 레이블(객체 위치) (+PyBullet 실험)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 8.56584%; height: 17px;&quot;&gt;&lt;a href=&quot;https://aihabitat.org/datasets/hm3d-semantics/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;MP3D&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.1008%; height: 17px;&quot;&gt;각 환경에 대한 RGB 이미지, 시맨틱 맵, 정답 레이블(객체 위치)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 8.56584%; height: 17px;&quot;&gt;&lt;a href=&quot;https://aihabitat.org/datasets/hm3d/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;HM3D&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.1008%; height: 17px;&quot;&gt;다양한 객체 포함, 시맨틱 맵, 정답 레이블(객체 위치)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;1100&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4PM8i/btsNRcTvyZk/gUASf3SXmoSHGp3j0nZ901/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4PM8i/btsNRcTvyZk/gUASf3SXmoSHGp3j0nZ901/img.png&quot; data-alt=&quot;Gibson dataset 예&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4PM8i/btsNRcTvyZk/gUASf3SXmoSHGp3j0nZ901/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4PM8i%2FbtsNRcTvyZk%2FgUASf3SXmoSHGp3j0nZ901%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;1100&quot; height=&quot;561&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;561&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Gibson dataset 예&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>인공지능 연구</category>
      <category>gibson</category>
      <category>hm3d</category>
      <category>mp3d</category>
      <category>navigation robot</category>
      <category>object goal navigation</category>
      <category>robot navigation research</category>
      <category>로봇 네비게이션 연구</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/133</guid>
      <comments>https://perconsi.tistory.com/133#entry133comment</comments>
      <pubDate>Sun, 11 May 2025 20:09:57 +0900</pubDate>
    </item>
    <item>
      <title>Downstream task에서 Pretraining model의 Fine-tuning이란? (vs. frozen)</title>
      <link>https://perconsi.tistory.com/132</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Fine-tuning&lt;/span&gt;&lt;/b&gt;&lt;span&gt;은 Pretraining &lt;/span&gt;&lt;span&gt;이후&lt;span&gt;, &lt;/span&gt;기존&lt;span&gt; backbone(encoder) weight&lt;/span&gt;를 그대로 가져와서&lt;span&gt;, downstream task&lt;/span&gt;를 학습할 때&lt;span&gt; weight&lt;/span&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&gt;그래서 Pretraining method를 제안하는 논문은, 그 방법론의 우수함을 입증하기 위해, 그 방법에 따라 생성한 pretrained weight를 backbone으로 다른 모델의 성능 개선 정도를 평가한다.&amp;nbsp;&lt;/span&gt;&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;Pretrained model을 사용한 frozen, fine-tuning 실험이란 무엇인가..&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Downstream task&lt;/b&gt;란 이렇게 학습한 모델 파라미터를 통해 다른 작업(e.g., navigation, classification)을 수행하는 것을 뜻한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이러한&lt;b&gt; Downstream task&lt;/b&gt;에서 간혹 &lt;u&gt;pretrained weight를 backbone으로 받은 다른 모델에서 frozen, fine-tuning 실험&lt;/u&gt;을 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcmhPd/btsNCg78ovL/Lc02oyc7jE8v6osxK3mtGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcmhPd/btsNCg78ovL/Lc02oyc7jE8v6osxK3mtGK/img.png&quot; data-alt=&quot;Mohammad et al, VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training, arXiv&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcmhPd/btsNCg78ovL/Lc02oyc7jE8v6osxK3mtGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcmhPd%2FbtsNCg78ovL%2FLc02oyc7jE8v6osxK3mtGK%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;756&quot; height=&quot;197&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Mohammad et al, VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training, arXiv&lt;/figcaption&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;Downstream task에서 Frozen과 Fine-tuned 실험이란?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Frozen: &lt;u&gt;backbone weight를 고정&lt;/u&gt;,&lt;b&gt; 해당 task data로 추가 가중치 업데이트 안 함&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Fine-tuned: &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;u&gt;backbone weight를 초기값으로 설정&lt;/u&gt; 후,&amp;nbsp;&lt;b&gt;해당 task data로 지속적인 가중치 업데이트를 통해 &lt;u&gt;해당 task에 fine-tuning 된 모델을 생성&lt;/u&gt;&lt;/b&gt; (== base model을 기반으로 깔되, 해당 task에 더 적합하도록 추가 학습시킨 모델을 생성)&lt;/span&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;&lt;span&gt;&lt;span&gt;예시 테이블에서, VANP extracted feature z_past&lt;/span&gt;는&lt;span&gt; downstream task&lt;/span&gt;에서 &lt;span&gt;weight&lt;/span&gt;를 frozen 했을 때만 그대로 사용되고, fine-tuning시에는 &lt;span&gt;weight&lt;/span&gt;가 업데이트되어서 &lt;span&gt;pretraining &lt;/span&gt;단계에서 뽑힌&lt;span&gt; context token z_past&lt;/span&gt;와는 다른 값임&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;+backbone 모델과 downstream 모델 학습 시 적절한 learning rate&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/03cM0/btsNCdqgZpk/vniG0KOW9lNjsnUGSWA0Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/03cM0/btsNCdqgZpk/vniG0KOW9lNjsnUGSWA0Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/03cM0/btsNCdqgZpk/vniG0KOW9lNjsnUGSWA0Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F03cM0%2FbtsNCdqgZpk%2FvniG0KOW9lNjsnUGSWA0Vk%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;712&quot; height=&quot;127&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;127&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;</description>
      <category>인공지능 연구</category>
      <category>downstream</category>
      <category>Fine Tuning</category>
      <category>fine-tuning</category>
      <category>Pretraining</category>
      <category>사전학습</category>
      <category>파인튜닝이란</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/132</guid>
      <comments>https://perconsi.tistory.com/132#entry132comment</comments>
      <pubDate>Sun, 27 Apr 2025 20:19:44 +0900</pubDate>
    </item>
    <item>
      <title>Navigation에서 context token(ctx)만으로 trajectory를 예측하는 이유 (+ pretext task)</title>
      <link>https://perconsi.tistory.com/131</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최근 VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training라는 논문을 읽었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간략하게는 Navigation시 어디를 집중해서 볼지 제안한 논문이다.&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;a href=&quot;https://arxiv.org/abs/2403.08109&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/2403.08109&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1745738143225&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training&quot; data-og-description=&quot;Humans excel at efficiently navigating through crowds without collision by focusing on specific visual regions relevant to navigation. However, most robotic visual navigation methods rely on deep learning models pre-trained on vision tasks, which prioritiz&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/2403.08109&quot; data-og-url=&quot;https://arxiv.org/abs/2403.08109v3&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/nsH6y/hyYMRhEr8A/3foB7it4kF3SMQagybqdG1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/wBhCT/hyYIe6qRv8/HKvoRKdekuxqtZpkn46kkK/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/2403.08109&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/2403.08109&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/nsH6y/hyYMRhEr8A/3foB7it4kF3SMQagybqdG1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/wBhCT/hyYIe6qRv8/HKvoRKdekuxqtZpkn46kkK/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&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;VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Humans excel at efficiently navigating through crowds without collision by focusing on specific visual regions relevant to navigation. However, most robotic visual navigation methods rely on deep learning models pre-trained on vision tasks, which prioritiz&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;arxiv.org&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;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Navigation에서&amp;nbsp;context&amp;nbsp;token(ctx)만으로&amp;nbsp;trajectory를&amp;nbsp;예측하는&amp;nbsp;이유&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 framework는 왼쪽 부분에서 navigation relevant feature를 추출하고, 오른쪽 CNN(ResNet50) 블록에서 아까 추출한 feature를 pretrained weight로 받아와서 transformer 인코더에 입력으로 넣는다. 마지막으로 transformer를 통과한 마지막 &lt;u&gt;context token(ctx)만을 이용하여 최종 trajectory를 예측한다.&lt;/u&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;853&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvCX6M/btsNCqv7qGi/KAkb5pqlUZ2e0AYtoE39Ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvCX6M/btsNCqv7qGi/KAkb5pqlUZ2e0AYtoE39Ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvCX6M/btsNCqv7qGi/KAkb5pqlUZ2e0AYtoE39Ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvCX6M%2FbtsNCqv7qGi%2FKAkb5pqlUZ2e0AYtoE39Ek%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;853&quot; height=&quot;299&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;299&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;(참고로 저 CNN - ResNet50에서 마지막 layer는 flatten해서 transformer에 인코더로 들어감 =&amp;gt; 이때 flatten 해서 공간적 정보를 일부 잃지만, transformer의 positional encoding으로 어느 정도 보완 가능)&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;ctx는 BERT에서 나온 개념으로 &quot;전체 시퀀스에 대한 요약 정보&quot;이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BERT에서 ctx는&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1045&quot; data-start=&quot;881&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;921&quot; data-start=&quot;881&quot;&gt;BERT에서는 입력 문장 앞에 &lt;b&gt;[CLS] token&lt;/b&gt;을 추가&lt;/li&gt;
&lt;li data-end=&quot;954&quot; data-start=&quot;922&quot;&gt;이 [CLS] token은 처음에는 랜덤한 임베딩&lt;/li&gt;
&lt;li data-end=&quot;1045&quot; data-start=&quot;955&quot;&gt;Transformer 층을 거치는 동안 [CLS] token은 &lt;b&gt;다른 모든 단어들과 attention&lt;/b&gt;하면서 &amp;rarr; 문장의 전체 의미를 요약하게 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1102&quot; data-start=&quot;1047&quot; data-ke-size=&quot;size16&quot;&gt;VANP에서 context token은 이 [CLS] token 개념을 그대로 가져와서 Transformer에 image patch token을 입력하기 전에 ctx 토큰을 맨 앞에 추가해서 학습시킴.&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1102&quot; data-start=&quot;1047&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1102&quot; data-start=&quot;1047&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;하지만 각 이미지 patch token들도 각각 전체 시퀀스에 대한 요약 정보를 담고 있는데, ctx을 추가하는 이유는?&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 data-end=&quot;1102&quot; data-start=&quot;1047&quot;&gt;&lt;b&gt;Transformer 안의 각 patch token&lt;/b&gt;은 &lt;b&gt;&quot;자기 자신의 지역적 의미 + 주변 context&quot;&lt;/b&gt; 만을 반영&lt;/li&gt;
&lt;li data-end=&quot;1102&quot; data-start=&quot;1047&quot;&gt;&lt;b&gt;반면&lt;/b&gt;, ctx는 &quot;내가 전체를 바라보는 대표자&quot;로서 학습되기 때문에, &amp;rarr; &lt;b&gt;전 범위의 요약된 의미를 집중적으로 가지게 됨&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1675&quot; data-start=&quot;1644&quot;&gt;전체 입력 정보를 요약한 벡터로 간단하고 효율적으로 downstream task(분류, 경로 예측 등)를 처리하기 위해
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1675&quot; data-start=&quot;1644&quot;&gt;MLP는 여러 feature를 일일이 입력받는 것보다 &lt;b&gt;하나의 통합 벡터(ctx)&lt;/b&gt;만 받아서 출력하는 게 더 효율적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 이유로 transformer에서 하나의 context token (CLS token)만 사용해서, 예측을 하는 구조는 다른 모델에서도 종종 사용됨.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boVEVS/btsNA6FnYmc/MjzgQfKRo2mzZ5m7iurkyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boVEVS/btsNA6FnYmc/MjzgQfKRo2mzZ5m7iurkyk/img.png&quot; data-alt=&quot;￼&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boVEVS/btsNA6FnYmc/MjzgQfKRo2mzZ5m7iurkyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboVEVS%2FbtsNA6FnYmc%2FMjzgQfKRo2mzZ5m7iurkyk%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;711&quot; height=&quot;354&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;354&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;￼&lt;/figcaption&gt;
&lt;/figure&gt;
&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;Self-supervised learning에서 Pretext task란?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Self-supervised learning에서 pretext task란 &lt;u&gt;본래 최종 목적과는 다른 보조 task를 설정 후 이를 푸는 과정에서 유용한 feature를 뽑아내도록 학습시킴.&lt;/u&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;VANP 논문에서 pretext task: past observation, future action, goal image를 활용해서 서로 정보량이 최대(mutual informatio maximization)가 되도록 학습시키는 것&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;감사합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능</category>
      <category>bert</category>
      <category>cls token</category>
      <category>context token</category>
      <category>downstream task</category>
      <category>Navigation</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/131</guid>
      <comments>https://perconsi.tistory.com/131#entry131comment</comments>
      <pubDate>Sun, 27 Apr 2025 16:36:09 +0900</pubDate>
    </item>
    <item>
      <title>[일상] 비프 부르기뇽같은 사람</title>
      <link>https://perconsi.tistory.com/130</link>
      <description>&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;p data-ke-size=&quot;size16&quot;&gt;일주일 만에 비행기티켓 끊고 떠난 여행이라 P의 여행 그 자체였따&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;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;사진으로는 커 보이지만 실제로는 성인 여성 손바닥 하나 정도의 크기로 굉장히 작다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 작다고 생각했지만 먹고 나서 생각은 온전히 바뀌었습니다.&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size16&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;작지만 알차다..!&lt;/span&gt;&lt;/blockquote&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;이 비프 부르기뇽 한 그릇에는 양을 불리기 위한 군더더기 재료는 하나도 없고, 그에 준하는 양의 고기가 들어 있었다.&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;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5iLtX/btsNop0c6OH/OgJq8aqvo7yzKz4TakIW4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5iLtX/btsNop0c6OH/OgJq8aqvo7yzKz4TakIW4k/img.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1314&quot; data-is-animation=&quot;false&quot; width=&quot;588&quot; height=&quot;537&quot; style=&quot;width: 58.6789%; margin-right: 10px;&quot; data-widthpercent=&quot;59.37&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5iLtX/btsNop0c6OH/OgJq8aqvo7yzKz4TakIW4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5iLtX%2FbtsNop0c6OH%2FOgJq8aqvo7yzKz4TakIW4k%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;1440&quot; height=&quot;1314&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwaGnt/btsNrkLoUrr/9xeZOoSezsHRvnXAMDMh71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwaGnt/btsNrkLoUrr/9xeZOoSezsHRvnXAMDMh71/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-is-animation=&quot;false&quot; style=&quot;width: 40.1583%;&quot; data-widthpercent=&quot;40.63&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwaGnt/btsNrkLoUrr/9xeZOoSezsHRvnXAMDMh71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwaGnt%2FbtsNrkLoUrr%2F9xeZOoSezsHRvnXAMDMh71%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;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&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;이건 같이 먹었던 양파 수프다.&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cx9A3W/btsNsQaAQ31/iXm4onpNyMphttQK4QcFQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cx9A3W/btsNsQaAQ31/iXm4onpNyMphttQK4QcFQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cx9A3W/btsNsQaAQ31/iXm4onpNyMphttQK4QcFQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcx9A3W%2FbtsNsQaAQ31%2FiXm4onpNyMphttQK4QcFQk%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;1440&quot; height=&quot;1080&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&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;그래서 느낀 점이 저도 비프 부르기뇽 같이 군더더기 없고, 겉모습은 화려하지 않더라도 알찬 그런 사람이 되고 싶다는 생각이 들었다. 조금 더 나아가서 앞으로 제가 하게 될 research도 이렇게 알찬 work를 만들어내는 사람이 되고 싶어 졌다.&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;color: #333333; text-align: start;&quot;&gt;어디 좋은 학회에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;논문을 몇 편 냈고 하는 그런 피상적인 얘기보단, 사람들이 제 논문을 읽었을 때 그들에게 울림을 줄 수 있는 그런 논문이 쓰고 싶다는 생각이 더 굳어졌다.&amp;nbsp;&lt;/p&gt;</description>
      <category>기타/끄적끄적</category>
      <category>비프 부르기뇽</category>
      <category>프랑스</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/130</guid>
      <comments>https://perconsi.tistory.com/130#entry130comment</comments>
      <pubDate>Sat, 19 Apr 2025 14:54:15 +0900</pubDate>
    </item>
    <item>
      <title>강화학습 개념과 Markov Decision Process란? (Feat. 강화학습 스터디)</title>
      <link>https://perconsi.tistory.com/124</link>
      <description>&lt;p style=&quot;text-align: center;&quot; 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 style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;새내기의 개발일지로 시작한 블로그가 어느덧 3년차에 접어들고 있네요:)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;한동안 바쁘다는 핑계로 포스팅하지 못한 글들이 수두룩한데, 앞으로는 더 열심히 블로그로 정보를 공유하려고 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;모르는 점 있으면 댓글 달아주세요 !!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; 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;style3&quot; /&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; 자세한 내용은 다음 깃허브 레포에서 확인해 주세요!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/Prcnsi/Reinforcement-Study&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/Prcnsi/Reinforcement-Study&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1727957143154&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - Prcnsi/Reinforcement-Study: Study of the Reinforement theory and practice Study&quot; data-og-description=&quot;Study of the Reinforement theory and practice Study - Prcnsi/Reinforcement-Study&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/Prcnsi/Reinforcement-Study&quot; data-og-url=&quot;https://github.com/Prcnsi/Reinforcement-Study&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/DmMna/hyXehPLkeq/uiK6QtYOtSKdGJODVWDxiK/img.png?width=1200&amp;amp;height=600&amp;amp;face=1014_125_1057_171,https://scrap.kakaocdn.net/dn/ne7Dr/hyXaC8ViTV/VOKKVcXMk5zoRy9FZvD8H1/img.png?width=1200&amp;amp;height=600&amp;amp;face=1014_125_1057_171&quot;&gt;&lt;a href=&quot;https://github.com/Prcnsi/Reinforcement-Study&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/Prcnsi/Reinforcement-Study&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/DmMna/hyXehPLkeq/uiK6QtYOtSKdGJODVWDxiK/img.png?width=1200&amp;amp;height=600&amp;amp;face=1014_125_1057_171,https://scrap.kakaocdn.net/dn/ne7Dr/hyXaC8ViTV/VOKKVcXMk5zoRy9FZvD8H1/img.png?width=1200&amp;amp;height=600&amp;amp;face=1014_125_1057_171');&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;GitHub - Prcnsi/Reinforcement-Study: Study of the Reinforement theory and practice Study&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Study of the Reinforement theory and practice Study - Prcnsi/Reinforcement-Study&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;강화학습(Reinforcement Learning)이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;강화학습이란 AI의 분류 중 머신러닝(기계 학습)에 속하는 방법으로, 강화학습의 강화(Reinforment)는 시행착오를 통해 학습하는 방법입니다.&amp;nbsp; 이는 행동심리학에서 영향을 받아서, 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식해서 선택 가능한 행동들 중 누적 보상을 최대화하는 방향으로 학습하는 방법입니다.&amp;nbsp; 아래 그림과 같이 머신러닝 안의 한 카테고리가 강화학습입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;528&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lRnUo/btsp0ScUum2/Y6ns2nZBYJZRdVqIiWq1Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lRnUo/btsp0ScUum2/Y6ns2nZBYJZRdVqIiWq1Bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lRnUo/btsp0ScUum2/Y6ns2nZBYJZRdVqIiWq1Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlRnUo%2Fbtsp0ScUum2%2FY6ns2nZBYJZRdVqIiWq1Bk%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;442&quot; height=&quot;353&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;528&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;가장 대표적인 예시로는 DeepMind에서도 강화학습을 사용하여 학습한 것으로 유명하죠? 또한 ChatGPT 또한 인간 피드백형 강화학습 (RLHF)를 중심으로 학습시켰다고 합니다. 이 외에도 강화학습은 로보틱스, 자율주행, 주식투자 (퀀트 투자) 다방면에서 활발히 사용되고, 연구되고 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0jOnL/btsp6ryz9QP/75TOVLmSgHgmBTrzsf3U1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0jOnL/btsp6ryz9QP/75TOVLmSgHgmBTrzsf3U1k/img.png&quot; data-alt=&quot;Google Deepmind AlphGo&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0jOnL/btsp6ryz9QP/75TOVLmSgHgmBTrzsf3U1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0jOnL%2Fbtsp6ryz9QP%2F75TOVLmSgHgmBTrzsf3U1k%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;250&quot; height=&quot;184&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Google Deepmind AlphGo&lt;/figcaption&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;h2 data-ke-size=&quot;size26&quot;&gt;강화학습의 목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강화학습의 목표는 최종 누적 보상(Reward)의 합을 최대화하는 것을 목표로 합니다. 실제 현실세계에서도 행동 주체인 우리 사람(Agent)도 여러 가지 선택을 하고, 목표를 세우고 그에 맞게 행동을 합니다. 이때 중요한 것은 단기 보상을 최대화하는 것이 아닌 최종 누적 합, 즉 마지막 시점에서 목표에 대한 보상의 최종합을 최대화하는 것이 목표입니다.&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;예시로 시험기간에 한 학생이, 시험을 잘 치는 것이 목표인데, 이 학생이 단기 보상을 최대화하기 위해, 공부를 하지 않고 잠을 자고 Youtube을 보는 등의 행동(Action)을 하면 단기 보상(Reward)은 최대화되겠지만 결국 &quot;시험을 잘 친다&quot;는 목표를 이루는 데 있어서는 결국 보상(피드백, Reward)의 누적 합은 줄어드는 것과 같이 &lt;b&gt;&lt;u&gt;강화학습은 여러 가지 연속적인 선택에 대한 보상의 최종 누적 합을 최대로 하는 것을 목표로 한다&lt;/u&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;그래서 &lt;b&gt;&lt;u&gt;강화학습은 &quot;순차적인 행동 결정 문제&quot;라고도 한다.&lt;/u&gt;&lt;/b&gt; 즉, 순차적으로 행동 주체가 할 행동을 선택해야 하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 순차적인 행동 결정 문제를 &lt;u&gt;&lt;b&gt;수학적으로 모델링한 것을 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;마르코프 결정 프로세스&lt;/span&gt;&lt;/b&gt;(&lt;/u&gt;Markov Decision Process, MDP)라고&amp;nbsp; 부른다!&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;623&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfq2Ol/btsp9qL7bBx/LAKDYZQVeTGIOrKhgirkD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfq2Ol/btsp9qL7bBx/LAKDYZQVeTGIOrKhgirkD1/img.png&quot; data-alt=&quot;https://kr.mathworks.com/discovery/reinforcement-learning.html&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfq2Ol/btsp9qL7bBx/LAKDYZQVeTGIOrKhgirkD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbfq2Ol%2Fbtsp9qL7bBx%2FLAKDYZQVeTGIOrKhgirkD1%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;472&quot; height=&quot;247&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://kr.mathworks.com/discovery/reinforcement-learning.html&lt;/figcaption&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;h2 data-ke-size=&quot;size26&quot;&gt;강화학습 기본 용어&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강화학습 용어는 매우 많지만, 가장 기본적인 용어는 아래와 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모두 알아야 하는 용어이지만 이때 더 중요한 것은 Agent, Action, Reward, State, Policy가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 일반적으로 어떤 행동을 말할 때는, '밥을 먹었다', '공부를 했다'와 같이 동작(Action)에 대해서만 말하지만 강화학습에서는 상태(State)와 행동(Action)을 같이 기억하고 표현하는 것이 중요하다. &quot;배고픈 상태에서 밥을 먹었다&quot;, &quot;배부른 상태에서 밥을 먹었다&quot;와 같이 강화학습에서는 어떤 State에서 어떤 Action을 했는지가 매우 중요하기 때문에 이런 State, Action을 붙여서 기억할 필요가 있다.&amp;nbsp;&amp;nbsp;&lt;/p&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;&lt;b&gt;Agent: 의사결정자, 행동하는 주체&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action: Agent가 하는 행동 &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Reward: 행동에 대해 받는 보상 &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;State: 환경의 변화를 표현하는 상태&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Observation: State를 관찰하는 것&lt;/li&gt;
&lt;li&gt;Environment: 시스템을 Agent의 환경이라고 함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Policy: 최선의 행동을 선택하기 위한 규칙/방법, 선택의 기준이 되는 것&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Episode: 시작에서 끝까지 상태, 행동, 보상의 기록&lt;/li&gt;
&lt;li&gt;Trajectory: 에이전트가 행동한 경로&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;lt;그림 1&amp;gt;의 책 중에 우측에 강아지 책은 강화학습 공부하시는 분들은 알법한 굉장히 유명한 RL 책입니다.&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;그리고 왼쪽 악어책은 거의 수식 위주로 되어 있고, 수식에 대해 설명이 많이 없는 편이기 때문에 난이도가 있지만, 그만큼 필수 RL 기본기가 다 들어 있어 얻어갈 수 있는 게 굉장히 많은 책입니다.&amp;nbsp;&lt;/p&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;&lt;b&gt;수학으로 풀어보는 강화학습 원리와 알고리즘 (위키북스)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;파이썬과 케라스로 배우는 강화학습 &lt;b&gt;(위키북스)&lt;/b&gt;&lt;/b&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;426&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFz7Bn/btsp34pmd0v/tPxgV3191l3phSeZtnPP9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFz7Bn/btsp34pmd0v/tPxgV3191l3phSeZtnPP9K/img.png&quot; data-alt=&quot;그림1. 스터디에 사용한 교재&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFz7Bn/btsp34pmd0v/tPxgV3191l3phSeZtnPP9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFz7Bn%2Fbtsp34pmd0v%2FtPxgV3191l3phSeZtnPP9K%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;426&quot; height=&quot;286&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;286&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1. 스터디에 사용한 교재&lt;/figcaption&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;</description>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/124</guid>
      <comments>https://perconsi.tistory.com/124#entry124comment</comments>
      <pubDate>Fri, 4 Aug 2023 17:56:36 +0900</pubDate>
    </item>
    <item>
      <title>[RL] Offline Meta Reinforcement-Learning이란?</title>
      <link>https://perconsi.tistory.com/120</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이번 포스트에서는 최신 AI 논문에서 자주 등장하는 Offline Meta-Reinforcement-Learning에 대해 정리해 보았다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 Offline Meta-RL을 이해하기 위해서는 Meta-Learning, Online-Offline Learning에 대해서 이해가 필요해서 이를 정리하고, 추가적으로 Offline Meta-RL과 함께 자주 언급되는 Online Self-Supervision에 대해서도 정리해 보았다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; 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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Meta-Learning&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Meta는 한 단계 더 위에 있는 것을 가리킬 때 사용한다. 예를 들어, meta-data는 데이터에 대한 정보이고, meta 인지는 스스로에 대해 인지하는 것을 뜻한다. 그래서, Meta-Learning은 학습하는 방법을 학습하는 것입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 Task A에 대한 내용을 훈련시키고, 이 훈련시키는 과정을 학습해서 (Meta-Learning) Task B에 대해서도 별도의 학습 없이 구분할 수 있는 모델을 만들 수 있다. 이를 통해 범용 인공지능을 만드는데 더 가까이 다가갈 수 있다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Online Learning vs Offline Learning&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오프라인 학습은 &lt;u&gt;&lt;b&gt;대량의 훈련 데이터셋&lt;/b&gt;&lt;/u&gt; 전체를&lt;b&gt;&lt;u&gt; 활용해 모델을 학습시킨 뒤 배포&lt;/u&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;온라인 학습은 &lt;u&gt;&lt;b&gt;미니 배치 단위의 데이터로 모델을 학습&lt;/b&gt;&lt;/u&gt;시킨 뒤 &lt;b&gt;&lt;u&gt;배포&lt;/u&gt;&lt;/b&gt;하고 새로운 데이터가 생성되면 &lt;u&gt;&lt;b&gt;배포된 모델에 지속적으로 개선하여 학습&lt;/b&gt;&lt;/u&gt;하는 방식이다. 이는 주식투자와 같이 실시간 반영이 중요한 시스템에서 주로 쓰이며 주기적인 모니터링이 필요하다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&amp;gt; 가장 중요한 것은 앞으로&lt;/span&gt;&lt;b&gt; 앞에 오프라인 학습이 붙으면&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, 전체 단위로 학습하여, &lt;/span&gt;&lt;b&gt;전체를 업데이트하는 방식&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이고, &lt;/span&gt;&lt;b&gt;온라인 학습이 붙으면 실시간 배치 단위로 데이터를 학습&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;시키는 것을 의미하구나~ 를 &lt;/span&gt;&lt;b&gt;아는 게 가장 중요&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;합니다.&lt;/span&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;왜냐하면 앞으로도 계속 Online, Offline에서 Learning이 생략된 Online Self-Sueprvision과 같은 내용이 나오기 때문이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Online Self Supervision도 Online (Learning)의 의미를 안다면 실시간으로 계속 업데이하는 방식으로 Self-Supervision을 수행하는구나를 알 수 있습니다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. Online Meta-Learning vs Offline Meta-Learning&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;온라인 메타학습&lt;/span&gt;은 &lt;u&gt;&lt;b&gt;메&lt;/b&gt;&lt;b&gt;타 모델이 실시간으로 학습&lt;/b&gt;&lt;/u&gt;을 진행하여 새로운 학습 과제에 대한 &lt;u&gt;&lt;b&gt;최적의 알고리즘과 하이퍼파라미터 설정을 동적으로 업데이트&lt;/b&gt;&lt;/u&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;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;background-color: #f6e199;&quot;&gt;오프라인 메타학습&lt;/span&gt;은 사전에 수집된 &lt;u&gt;&lt;b&gt;대규모의 데이터를 기반&lt;/b&gt;&lt;/u&gt;으로&lt;u&gt;&lt;b&gt; 메타 모델을 훈련&lt;/b&gt;&lt;/u&gt;하는 방식이다. 이는 메타 모델을 학습하여 새로운 학습 과제에 대한&lt;u&gt;&lt;b&gt; 최적의 알고리즘과 하이퍼파라미터 설정을 예측&lt;/b&gt;&lt;/u&gt;한다. 오프라인 메타학습은 다양한 분야에서 일반화된 초기 설정을 제공하여 학습 과정의 시작점을 향상할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;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;&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;b&gt;4. Offline Meta Reinforcement-Learning (RL)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 강화학습은 초기 Policy(정책)이 존재하지 않고, 에이전트가 환경과 상호작용하면서, 경험을 통해 최적의 정책을 학습한다. 그런데 이를 위해서는 비용이 많이 들거나 시간이 오래 든다. 이러한 문제를 해결하기 위해, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;오프라인 메타 강화학습&lt;/span&gt;을 활용해, 새로운 학습과제에 대한 초기 정책(Policy)을 개선하고, 강화학습을 수행하면 학습 효율을 높일 수 있다.&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;span style=&quot;background-color: #f6e199;&quot;&gt;오프라인 메타 강화학습&lt;/span&gt;이란,&amp;nbsp; &lt;b&gt;&lt;u&gt;대량의 사전 수집된 강화학습 데이터를 사용&lt;/u&gt;&lt;/b&gt;해 &lt;b&gt;&lt;u&gt;메타 모델의 정책을 학습(Meta-Train Policy)&lt;/u&gt;&lt;/b&gt;&amp;nbsp;하면서 이를 통해 &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;과제에 대한 초기 Policy를 개선하는 방법&lt;/b&gt;&lt;/span&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;이 오프라인 메타 강화학습의 순서는 아래 그림1과 같이 &lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;메타학습을 통해 초기 정책을 생성&lt;/b&gt;&lt;/span&gt;하고, 그 &lt;u&gt;초기 정책을 기반으로&lt;/u&gt; &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;실제 RL를 수행&lt;/b&gt;&lt;/span&gt;해서, 성능을 향상시키는 것이 오프라인 메타 강화학습이 되고, 이 내용이 논문 제목에서 나온 오프라인 메타 강화학습의 의미이다.&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;557&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZciQy/btsl2n06CBD/VHx5KtiB3InTd9wikAKKc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZciQy/btsl2n06CBD/VHx5KtiB3InTd9wikAKKc0/img.png&quot; data-alt=&quot;그림1. 오프라인 메타 강화학습 절차&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZciQy/btsl2n06CBD/VHx5KtiB3InTd9wikAKKc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZciQy%2Fbtsl2n06CBD%2FVHx5KtiB3InTd9wikAKKc0%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;718&quot; height=&quot;272&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1. 오프라인 메타 강화학습 절차&lt;/figcaption&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. Online Self-Supervision&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Online Self-Supervision에서 Online은 Online Leaning이 생략된 것으로 실시간으로 데이터를 학습해서 모델을 업데이트하는 방식을 뜻합니다. 그렇다면 Self-Supervision이란 무엇일까요? Self-Supervision이란 자기 지도 학습으로 Label이 없는 Untagged data를 기반으로 학습데이터에 대해서 스스로 분류를 수행하는 비지도 학습의 일종입니다.&amp;nbsp;&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;이러한 Self-Suprvision은 적은 Taggedd data로도 학습이 가능해서 학습 데이터 확보가 쉽고 모델의 정확도를 더 높일 수 있다. 이는 데이터 자체에서 자동으로 지도 신호를 생성하고 모델을 학습한다.&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;&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;1) 비지도 표현 학습: 레이블되지 않은 대규모 데이터를 이용해 모델을 사전 훈련한다. 이 단계에서는 주로 자기 지도나 비지도 학습 알고리즘을 이용해 데이터의 구조와 특징을 학습한다. ex) GAN, 오토 인코더&lt;/li&gt;
&lt;li&gt;2) 지도 신호(레이블) 생성: 사전 훈련 모델을 사용해서 입력 데이터의 관계, 유사성, 다른 특징을 나타내는 레이블을 생성함.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;3) 모델 업데이트: 생성한 레이블을 사용해 사전 모델을 업데이트해서 학습 과정에서 사용됨.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;4) 반복: 위 단계를 반복해 모델을 계속 업데이트하고 개선해서, 모델을 더욱 정교하게 학습해 성능을 향상함&lt;/li&gt;
&lt;/ul&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: center;&quot; data-ke-size=&quot;size16&quot;&gt;감사합니다:)&lt;/p&gt;</description>
      <category>meta learning</category>
      <category>Meta Reinforcement Learning</category>
      <category>meta-learning</category>
      <category>online learning</category>
      <category>메타 강화학습</category>
      <category>메타러닝</category>
      <category>메타학습</category>
      <category>오프라인 학습</category>
      <category>온라인 메타 학습</category>
      <category>온라인학습</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/120</guid>
      <comments>https://perconsi.tistory.com/120#entry120comment</comments>
      <pubDate>Sat, 1 Jul 2023 21:49:19 +0900</pubDate>
    </item>
    <item>
      <title>[C++] 벡터, 스택, 큐 사용법과 차이</title>
      <link>https://perconsi.tistory.com/119</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;C++에서 벡터, 스택, 큐는 C++의 모두 STL Library에 들어있으며 각각 &amp;lt;vector&amp;gt;,&amp;lt;stack&amp;gt;,&amp;lt;queue&amp;gt; 헤더파일을 include해서 사용할 수 있다.&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;스택과&amp;nbsp;큐는&amp;nbsp;벡터를&amp;nbsp;응용한&amp;nbsp;개념이고&amp;nbsp; &lt;br /&gt;스택과&amp;nbsp;큐&amp;nbsp;둘&amp;nbsp;다&amp;nbsp;push()는&amp;nbsp;원소&amp;nbsp;추가,&amp;nbsp;pop()은&amp;nbsp;원소&amp;nbsp;제거 &lt;br /&gt;&lt;br /&gt;stack&amp;nbsp;pop():&amp;nbsp;제일&amp;nbsp;뒤의&amp;nbsp;원소&amp;nbsp;제거 &lt;br /&gt;queue&amp;nbsp;pop():&amp;nbsp;제일&amp;nbsp;앞의&amp;nbsp;원소&amp;nbsp;제거 &lt;br /&gt;&lt;br /&gt;스택은&amp;nbsp;먼저&amp;nbsp;들어간게&amp;nbsp;먼저&amp;nbsp;나옴&amp;nbsp;(FIFO,&amp;nbsp;First&amp;nbsp;In&amp;nbsp;First&amp;nbsp;Out) &lt;br /&gt;스택은&amp;nbsp;top()으로&amp;nbsp;가장&amp;nbsp;위에&amp;nbsp;있는&amp;nbsp;원소를&amp;nbsp;출력할&amp;nbsp;수&amp;nbsp;있고 &lt;br /&gt;&lt;br /&gt;큐는&amp;nbsp;먼저&amp;nbsp;들어간게&amp;nbsp;나중에&amp;nbsp;나오고&amp;nbsp;(LIFO,&amp;nbsp;Last&amp;nbsp;In&amp;nbsp;First&amp;nbsp;Out) &lt;br /&gt;큐는&amp;nbsp;front()로&amp;nbsp;제일&amp;nbsp;아래에&amp;nbsp;있는&amp;nbsp;원소를&amp;nbsp;출력하고,&amp;nbsp;back()으로&amp;nbsp;가장&amp;nbsp;위에(나중에&amp;nbsp;들어간)&amp;nbsp;원소를&amp;nbsp;출력함 &lt;br /&gt;&lt;br /&gt;대괄호([])를&amp;nbsp;통해&amp;nbsp;원소의&amp;nbsp;접근이&amp;nbsp;불가능하고&amp;nbsp; &lt;br /&gt;front()가&amp;nbsp;맨&amp;nbsp;앞의&amp;nbsp;원소,&amp;nbsp;back()이&amp;nbsp;맨&amp;nbsp;뒤의&amp;nbsp;원소 &lt;br /&gt;&lt;br /&gt;원소를&amp;nbsp;추가하거나&amp;nbsp;제거하는&amp;nbsp;작업&amp;nbsp;(insert(),&amp;nbsp;erase()는&amp;nbsp;시간&amp;nbsp;복잡도가&amp;nbsp;O(n)이다. &lt;br /&gt;스택과&amp;nbsp;큐는&amp;nbsp;[]로&amp;nbsp;원소&amp;nbsp;접근이&amp;nbsp;불가능하고&amp;nbsp;top()으로&amp;nbsp;제일&amp;nbsp;마지막에&amp;nbsp;있는&amp;nbsp;원소를&amp;nbsp;접근할&amp;nbsp;수&amp;nbsp;있다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1683012866075&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;queue&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;stack&amp;gt;

using namespace std;
int main() {
	/*vector&amp;lt;int&amp;gt; v;
	vector&amp;lt;string&amp;gt; nameList;
	// 벡터 인덱싱은 배열과 마찬가지로 대괄호 [] 사용
	v.push_back(1);
	v.push_back(3);
	v.push_back(5);
	v.push_back(7);
	v.push_back(9);

	nameList.push_back(&quot;jiseon&quot;);
	nameList.push_back(&quot;Dabin&quot;);
	nameList.push_back(&quot;Hyeri&quot;);
	nameList.push_back(&quot;jimin&quot;);

	// ====================================================================
	//  벡터를 출력하는 두 가지 방법 (벡터의 원소 출력은 모두 Iterator를 사용해야함.)dcdc
	//  1) iterator로 벡터 사용
	// 	2) iterator로 숫자(int)사용
	// ====================================================================

	// iterator로 벡터 사용은 담는 자료형도 따로 선언한 벡터여야함.
	vector&amp;lt;string&amp;gt;::iterator iter;
	cout &amp;lt;&amp;lt; &quot;[iterator 벡터로 출력]&quot; &amp;lt;&amp;lt; &quot;\n&quot;;
	for (iter = nameList.begin(); iter &amp;lt; nameList.end(); iter++) {
		cout &amp;lt;&amp;lt; *iter &amp;lt;&amp;lt; ' '; // 출력시에도 대괄호가 아닌 *(iterator 형식) 
	}
	
	cout &amp;lt;&amp;lt; &quot;\n[iterator 숫자로 출력]&quot; &amp;lt;&amp;lt; &quot;\n&quot;;
	for (int i = 0; i &amp;lt; v.size(); i++) {
		cout &amp;lt;&amp;lt; v[i] &amp;lt;&amp;lt; ' ';
	}*/

	stack&amp;lt;char&amp;gt; s;
	s.push('h');
	s.push('e');
	s.push('l');
	s.push('l');
	s.push('o');

	cout &amp;lt;&amp;lt; &quot;I am stack&quot; &amp;lt;&amp;lt; '\n';
	for (int i = 0; i &amp;lt; 5; i++) {
		cout &amp;lt;&amp;lt; s.top() &amp;lt;&amp;lt; ' ';
		s.pop();
	}

	queue&amp;lt;char&amp;gt; n;
	n.push('j');
	n.push('i');
	n.push('s');
	n.push('e');
	n.push('o');
	n.push('n');
	cout &amp;lt;&amp;lt; &quot;\nI am queue &quot; &amp;lt;&amp;lt; '\n';
	for (int i = 0; i &amp;lt; 6; i++) {
		cout &amp;lt;&amp;lt; n.front() &amp;lt;&amp;lt; ' ';
		n.pop();
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>개발 지식/C,C++</category>
      <author>Prcnsi</author>
      <guid isPermaLink="true">https://perconsi.tistory.com/119</guid>
      <comments>https://perconsi.tistory.com/119#entry119comment</comments>
      <pubDate>Tue, 2 May 2023 16:34:56 +0900</pubDate>
    </item>
  </channel>
</rss>