<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>뛰는 놈 위에 나는 공대생</title>
    <link>https://normal-engineer.tistory.com/</link>
    <description>수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.</description>
    <language>ko</language>
    <pubDate>Sun, 10 May 2026 14:59:16 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>보통의공대생</managingEditor>
    <image>
      <title>뛰는 놈 위에 나는 공대생</title>
      <url>https://tistory1.daumcdn.net/tistory/4205388/attach/f2ce53988b2a4e7ca91ee2e5d3cf30c5</url>
      <link>https://normal-engineer.tistory.com</link>
    </image>
    <item>
      <title>[논문] Nature format 정리</title>
      <link>https://normal-engineer.tistory.com/528</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;Nature materials format 기준으로 설명한다. : &lt;a href=&quot;https://www.nature.com/nmat/submission-guidelines/aip-and-formatting&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.nature.com/nmat/submission-guidelines/aip-and-formatting&lt;/a&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. Document type&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- LaTeX 기준 a&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;rticle.cls, revtex.cls or amsart.cls와 같은 class file 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- Computer Modern fonts를 사용할 것. Computer modern fonts : &lt;a href=&quot;https://www.fontsquirrel.com/fonts/computer-modern&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.fontsquirrel.com/fonts/computer-modern&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- graphicx.sty 사용 - package graphicx를 import하면 됨.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- number로만 인용할 것. manuscript 안에 references가 포함되어야 함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- bibtex를 쓰고 싶으면 \bibliography나 \bibliographystyle를 사용하지 말고 .bbl file을 사용할 것&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LaTeX support : &lt;a href=&quot;https://www.springernature.com/gp/authors/campaigns/latex-author-support&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.springernature.com/gp/authors/campaigns/latex-author-support&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775166104924&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;LaTeX author support | Publish your research | Springer Nature&quot; data-og-description=&quot;Still having problems? If you cannot find the answer you need here, or in the FAQs, please contact the editorial office for the journal you are submitting to in the first instance. To help them help you please try and include the following information with&quot; data-og-host=&quot;www.springernature.com&quot; data-og-source-url=&quot;https://www.springernature.com/gp/authors/campaigns/latex-author-support&quot; data-og-url=&quot;https://www.springernature.com/gp/authors/campaigns/latex-author-support&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.springernature.com/gp/authors/campaigns/latex-author-support&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.springernature.com/gp/authors/campaigns/latex-author-support&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;LaTeX author support | Publish your research | Springer Nature&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Still having problems? If you cannot find the answer you need here, or in the FAQs, please contact the editorial office for the journal you are submitting to in the first instance. To help them help you please try and include the following information with&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.springernature.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;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;2. Table&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- Table은 맨 뒤에 첨부&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- Complex tables은 별도의 엑셀파일로 제출&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- 데이터에 대한 통계적 분석이 포함된 경우 standards of error analysis and range를 table legend에 설명해야한다. (이게 무슨 말이지?)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- chemical structure가 포함된 table은 문서 끝에 native ChemDraw 파일을 포함할 것&lt;/span&gt;&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;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;3. Figures&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;figure는 따로 guideline이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;&lt;a href=&quot;https://www.nature.com/documents/NRJs-guide-to-preparing-final-artwork.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.nature.com/documents/NRJs-guide-to-preparing-final-artwork.pdf&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;/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;Images&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모든 figures들은 Fig.1, Fig.2와 같은 형태로 순서대로 인용되어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Figure panels들은 minimum resolution이 300dpi이다. maximum width 180mm. (벡터 이미지면 문제 없다. 어차피 png로 export할 때 dpi를 정할 수 있기 때문)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 5-7pt san serif 폰트 사용 / Greek 문자는 Symbol font로 사용. - 보통 Arial 사용하면 문제 없다.&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;1500&quot; data-origin-height=&quot;901&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBLkFe/dJMcaiCOlf4/dDSQzkTIcrElX3s4ASHB81/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBLkFe/dJMcaiCOlf4/dDSQzkTIcrElX3s4ASHB81/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBLkFe/dJMcaiCOlf4/dDSQzkTIcrElX3s4ASHB81/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBLkFe%2FdJMcaiCOlf4%2FdDSQzkTIcrElX3s4ASHB81%2Fimg.jpg&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;1500&quot; height=&quot;901&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;901&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; letter-spacing: 0px;&quot;&gt;- scale bars를 사용하라. error bars가 필요하면 사용 가능.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;- labelling이나 scale/error bars를 flatten하지 말라는데 무슨 말이지?&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;Figure legends&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;- 각 figure마다 brief title + a short description of each panel 포함&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;- legend가 article type의 word limit을 넘기면 안됨.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;- methodological detail은 쓰지 마라.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;- 심볼이나 visual cue를 쓰지 말고 오직 말로만 설명해라.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 외 이미지에 대한 내용은 화학쪽이나 high resolution image가 많이 쓰이는 분야에 대한 내용이다.&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;4는 colour charges라 해서 실물로 출판되는 저널에 한해서 컬러로 출력하고 싶으면 돈을 더 내라는 얘기다.&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;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222;&quot;&gt;5. References&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Main text&lt;/li&gt;
&lt;li&gt;Tables&lt;/li&gt;
&lt;li&gt;Figure legends&lt;/li&gt;
&lt;li&gt;Box&lt;/li&gt;
&lt;li&gt;Methods&lt;/li&gt;
&lt;li&gt;Data Availability Section&lt;/li&gt;
&lt;li&gt;Extended data&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 순서대로 references 순서가 매겨져야 한다.&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;- each reference 당 하나의 출판물만 제시되어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 연구 출판물의 경우 DOI가 있으므로 이것도 같이 적어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 출판되지 않은 미팅 초록이나 리뷰 중인 논문은 레퍼런스 목록에 없어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- URLs은 괄호 안에 넣어서 인용하고 레퍼런스 목록에는 제외한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- grant details이나 acknowledgements은 레퍼런스 목록에 넣지 마라.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- footnotes는 지원하지 않음.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;For long-form manuscripts such as Articles, Letters, Review Articles, Perspectives and Progress Articles, titles of cited articles are required.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Example:&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Eigler, D. M. &amp;amp; Schweizer, E. K. Positioning single atoms with a scanning tunnelling microscope.&lt;span&gt;&amp;nbsp;&lt;/span&gt;Nature&lt;span&gt;&amp;nbsp;&lt;/span&gt;344, 524&amp;ndash;526 (1990).&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;For shorter article types such as Commentaries or News &amp;amp; Views, titles of cited articles are not included.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Example:&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Iijima, S.&lt;span&gt;&amp;nbsp;&lt;/span&gt;Nature&lt;span&gt;&amp;nbsp;&lt;/span&gt;354, 56&amp;ndash;58 (1991).&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;For book citations, the publisher is required.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Example:&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Jones, R. A. L.&lt;span&gt;&amp;nbsp;&lt;/span&gt;Soft Machines: Nanotechnology and Life&lt;span&gt;&amp;nbsp;&lt;/span&gt;Ch. 3 (Oxford Univ. Press, 2004).&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Data and code may be cited in the reference list if they have been assigned DOIs and should include authors, title, publisher (repository name) and&amp;nbsp;DOI expressed as a URL.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Example:&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Hao, Z., AghaKouchak, A., Nakhjiri, N. &amp;amp; Farahmand, A. Global Integrated Drought Monitoring and Prediction System (GIDMaPS) data sets. figshare&amp;nbsp;&lt;a href=&quot;http://dx.doi.org/10.6084/m9.figshare.853801&quot;&gt;http://dx.doi.org/10.6084/m9.figshare.853801&lt;/a&gt;&amp;nbsp;(2014).&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;To cite a preprint&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Example:&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Babichev, S. A., Ries, J. &amp;amp; Lvovsky, A. I. Quantum scissors: teleportation of single-mode optical states by means of a nonlocal single photon. Preprint at &lt;a href=&quot;https://arXiv.org/quant-ph/0208066&quot;&gt;https://arXiv.org/quant-ph/0208066&lt;/a&gt; (2002).&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. Methods&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;methods는 short, bold headings으로 분리되어야 한다. 추가적인 reference가 필요할 경우 main paper 레퍼런스의 뒤에 들어가게 된다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;좀 신기한 것은 protocol을 다음 웹사이트에 제출하라고 한다. &lt;a href=&quot;https://www.protocols.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.protocols.io/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775167340713&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;Bring structure to your research - protocols.io&quot; data-og-description=&quot;A secure platform for developing and sharing reproducible methods.&quot; data-og-host=&quot;www.protocols.io&quot; data-og-source-url=&quot;https://www.protocols.io/&quot; data-og-url=&quot;https://www.protocols.io/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kILbw/dJMb8RRSgH5/uzRMtvZZBFFQmTaRPjvuKK/img.jpg?width=1920&amp;amp;height=1550&amp;amp;face=0_0_1920_1550,https://scrap.kakaocdn.net/dn/lOkTi/dJMb8XR53eK/Eai978qKnWonubrQpuDbok/img.jpg?width=1920&amp;amp;height=1550&amp;amp;face=0_0_1920_1550,https://scrap.kakaocdn.net/dn/AeuFI/dJMb8Rj2i5q/Aa9BIeygI3G78WFfoQU2sK/img.jpg?width=600&amp;amp;height=751&amp;amp;face=242_124_394_290&quot;&gt;&lt;a href=&quot;https://www.protocols.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.protocols.io/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kILbw/dJMb8RRSgH5/uzRMtvZZBFFQmTaRPjvuKK/img.jpg?width=1920&amp;amp;height=1550&amp;amp;face=0_0_1920_1550,https://scrap.kakaocdn.net/dn/lOkTi/dJMb8XR53eK/Eai978qKnWonubrQpuDbok/img.jpg?width=1920&amp;amp;height=1550&amp;amp;face=0_0_1920_1550,https://scrap.kakaocdn.net/dn/AeuFI/dJMb8Rj2i5q/Aa9BIeygI3G78WFfoQU2sK/img.jpg?width=600&amp;amp;height=751&amp;amp;face=242_124_394_290');&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;Bring structure to your research - protocols.io&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A secure platform for developing and sharing reproducible methods.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.protocols.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주로 bio, chem 분야에서 필요한 듯하다.&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;b&gt;7. Acknowledgements&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;짧게 작성. referees 나 editors에 대한 감사는 제외. Grant나 contribution numbers는 괜찮음.&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;b&gt;8. Extended data figures&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;main paper에 포함된 data에 필요한 background를 제공해주는 figures들.&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; background-color: #ffffff; color: #222222; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;62&quot; data-start=&quot;0&quot; data-section-id=&quot;96eqcv&quot;&gt;최대 10개의 Extended Data 표시용 그림(display figures)까지 허용&lt;/li&gt;
&lt;li data-end=&quot;183&quot; data-start=&quot;63&quot; data-section-id=&quot;1d12bei&quot;&gt;&lt;b&gt;Extended Data 그림은&lt;/b&gt; Nature Materials에서 복사 편집(copy-edit)이나 스타일 편집을 하지 않으므로, 그림을 준비할 때 &lt;b&gt;가능한 한 저널 스타일로 그리기&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;271&quot; data-start=&quot;184&quot; data-section-id=&quot;1ynwckf&quot;&gt;필요할 경우 그림은 여러 패널(multi-paneled)로 구성할 수 있으며, &lt;b&gt;단일 PDF 페이지에 들어가도록 크기를 조정&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;405&quot; data-start=&quot;272&quot; data-section-id=&quot;1mionr7&quot;&gt;Extended Data 그림의 범례(legend)는 본문 그림과 동일한 방식으로 작성해야 하며, &lt;b&gt;&amp;lsquo;Inventory of Supporting Information&amp;rsquo; 문서 포함되어야 함&lt;/b&gt;&lt;/li&gt;
&lt;li data-is-last-node=&quot;&quot; data-end=&quot;475&quot; data-start=&quot;406&quot; data-section-id=&quot;3zl7um&quot;&gt;모든 &lt;b&gt;Extended Data 그림은 본문(main text)에서 적절한 위치에 개별 항목으로 참조&lt;/b&gt;&lt;/li&gt;
&lt;/ul&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;b&gt;10. Supplementary information (SI)&lt;/b&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;- SI는 제출된 그대로 게시되므로 명확하고 간결하게, 논리적으로 작성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 용어가 본문과 일관되어야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SI는 모든 항목이 순차적으로 번호를 매기고 본문이나 Extended data와 별도로 번호를 매긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Supplementary figure는 해당 결과를 extended data로 제시하는 게 적절하지 않을 경우에만 사용한다. 범례 포함 하나의 pdf 페이지 안에 들어가도록 만들고, 다른 supplementary information을 포함할 경우 최소한으로만 넣어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Figures, Tables, Videos에 제목과 캡션이 있어야하고 이 제목, 캡션은 본문의 룰과 동일하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 방법론적인 정보는 가능한 본문에 포함한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- (이건 좀 중요한 부분!) SI 항목은 본문 또는 Methods 섹션에서 최소 한 번 이상 반드시 참조되어야 한다. 반드시 Supplementary라는 단어를 포함해야하며 순서대로 인용해야 한다. 첨언하자면 이럴 경우에는 supplementary 내용을 그냥 본문 인용을 기준으로 배치하면 될 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하나의 통합된 pdf로 제출하되, 복잡한 표나 데이터는 csv 형식으로 제출하는 것도 허용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 소프트웨어는 zip 또는 tar 파일로 제출&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;&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;나머지는 좀 분야 specific하다. (bio, chem 분야는 링크 들어가서 다시 확인하는 게 좋을 듯)&lt;/p&gt;</description>
      <category>기타/논문작성 Writing</category>
      <category>논문</category>
      <category>연구</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/528</guid>
      <comments>https://normal-engineer.tistory.com/528#entry528comment</comments>
      <pubDate>Fri, 3 Apr 2026 07:17:46 +0900</pubDate>
    </item>
    <item>
      <title>[Acoustics] Dispersion relation</title>
      <link>https://normal-engineer.tistory.com/527</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;기계진동학을 공부했지만 acoustics를 전혀 몰라서 작성하는 글.&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;dispersion relation in acoustics는 wave frequency가 어떻게 wave number와 연관이 되어있느냐, 주파수에 따라 sound waves가 어떻게 빨리 전달되느냐에 대한 정보이다.&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;나는 항상 wave frequency = wave number라고 생각했기 때문이다.&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;dispersion relation은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\omega = \omega(k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 $\omega$는 angular frequency, $k$는 wave number이다. 이를 wave propagation behavior라고 한다.&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;phase velocity(speed of individual wave crests) 는 $c_p=\omega/k$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;group velocity(speed of energy)는 $c_g=d\omega/dk$&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1) Non-dispersive acoustics&lt;/b&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;Non-dispersive acoustics, 예를 들면 공기 중 소리 전파는 다음과 같은 관계를 가진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\omega=ck$$&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;즉, wave number와 angular frequency가 선형관계를 갖는다. 따라서 나의 기존 생각은 일반적인 공기 중 소리 전파를 생각했기 때문이다. 공기 중에서 소리의 wave velocity는 어느 주파수에서든 동일하다. 위에서 정의한 대로 $c_p$를 구하든, $c_g$를 구하든 위 관계식에서는 $c_p=c_g=c$로 계산할 수 있다.&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;b&gt;2) Dispersive acoustics&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dispersive acoustics의 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\omega \neq ck$$의 관계를 갖는다. 즉, wave number에 따라 frequency가 달라진다.&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;373&quot; data-origin-height=&quot;349&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBKQbZ/dJMcaiCHEkT/rerOEHiXKkpJALZ5oXtkq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBKQbZ/dJMcaiCHEkT/rerOEHiXKkpJALZ5oXtkq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBKQbZ/dJMcaiCHEkT/rerOEHiXKkpJALZ5oXtkq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBKQbZ%2FdJMcaiCHEkT%2FrerOEHiXKkpJALZ5oXtkq0%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;373&quot; height=&quot;349&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;349&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;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1518&quot; data-start=&quot;1493&quot; data-section-id=&quot;loui4t&quot;&gt;slope &amp;rarr; wave velocity&lt;/li&gt;
&lt;li data-end=&quot;1545&quot; data-start=&quot;1519&quot; data-section-id=&quot;9m5ra5&quot;&gt;flat band &amp;rarr; slow waves&lt;/li&gt;
&lt;li data-end=&quot;1575&quot; data-start=&quot;1546&quot; data-section-id=&quot;10e0vaa&quot;&gt;band gap &amp;rarr; no propagation&lt;/li&gt;
&lt;li data-end=&quot;1620&quot; data-start=&quot;1576&quot; data-section-id=&quot;kuglzr&quot;&gt;negative slope &amp;rarr; negative group velocity&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;</description>
      <category>기계공학 Mechanical engineering</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/527</guid>
      <comments>https://normal-engineer.tistory.com/527#entry527comment</comments>
      <pubDate>Thu, 26 Mar 2026 00:10:32 +0900</pubDate>
    </item>
    <item>
      <title>[PCA] Principal Component Analysis (PCA) example code</title>
      <link>https://normal-engineer.tistory.com/526</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;Iris dataset (2d feature)로 PCA를 적용한 예시이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1773261559637&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris

# 1. Load sample data (Iris dataset)
data = load_iris()
X = data.data

# 2. Standardize the data (Mean=0, Variance=1)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 3. Apply PCA (reduce to 2 components)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

# 4. Check results
print(f&quot;Original shape: {X.shape}&quot;)
print(f&quot;Reduced shape: {X_pca.shape}&quot;)
print(f&quot;Explained variance ratio: {pca.explained_variance_ratio_}&quot;)


import numpy as np

def pca_from_scratch(X, n_components):
    # Step 1: Mean Centering
    X_meaned = X - np.mean(X, axis=0)
    
    # Step 2: Compute Covariance Matrix
    cov_mat = np.cov(X_meaned, rowvar=False)
    
    # Step 3: Compute Eigenvalues and Eigenvectors
    eigen_values, eigen_vectors = np.linalg.eigh(cov_mat)
    
    # Step 4: Sort Eigenvalues and Eigenvectors in descending order
    sorted_index = np.argsort(eigen_values)[::-1]
    sorted_eigenvectors = eigen_vectors[:, sorted_index]
    
    # Step 5: Select top N components
    eigenvector_subset = sorted_eigenvectors[:, 0:n_components]
    
    # Step 6: Transform the data
    X_reduced = np.dot(X_meaned, eigenvector_subset)
    return X_reduced

# Example usage
X_scratch = pca_from_scratch(X, 2)&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;원래 데이터셋은 다음과 같다.&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;640&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tEtA5/dJMcaa5zNnj/n3GUKiCgKy86FgKLAY5350/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tEtA5/dJMcaa5zNnj/n3GUKiCgKy86FgKLAY5350/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tEtA5/dJMcaa5zNnj/n3GUKiCgKy86FgKLAY5350/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtEtA5%2FdJMcaa5zNnj%2Fn3GUKiCgKy86FgKLAY5350%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;640&quot; height=&quot;502&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;502&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;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1773261586842&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Visualize Principal Axes
plt.figure(figsize=(8, 6))

# Plot the data points
for color, i, target_name in zip(colors, [0, 1, 2], data.target_names):
    plt.scatter(X_pca[data.target == i, 0], X_pca[data.target == i, 1], 
                color=color, alpha=.8, lw=2, label=target_name)

# Plot principal axes
origin = [0, 0]
scale = np.sqrt(pca.explained_variance_)  # Scale by explained variance

for i, (component, var) in enumerate(zip(pca.components_, scale)):
    plt.arrow(origin[0], origin[1], 
              component[0] * var * 3, component[1] * var * 3,
              head_width=0.2, head_length=0.2, fc=f'C{i}', ec=f'C{i}', 
              linewidth=2.5, alpha=0.7, label=f'PC{i+1}')

plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('PCA of IRIS Dataset with Principal Axes')
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.grid(True, alpha=0.3)
plt.axhline(y=0, color='k', linewidth=0.5)
plt.axvline(x=0, color='k', linewidth=0.5)
plt.savefig(&quot;pca_iris_with_axes.eps&quot;)
plt.show()&lt;/code&gt;&lt;/pre&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;689&quot; data-origin-height=&quot;545&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FkW0K/dJMcagLvnE0/uAlCJ9RcsWQZZwLMh94Ia0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FkW0K/dJMcagLvnE0/uAlCJ9RcsWQZZwLMh94Ia0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FkW0K/dJMcagLvnE0/uAlCJ9RcsWQZZwLMh94Ia0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFkW0K%2FdJMcagLvnE0%2FuAlCJ9RcsWQZZwLMh94Ia0%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;689&quot; height=&quot;545&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;545&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>연구 Research/데이터과학 Data Science</category>
      <category>PCA</category>
      <category>머신러닝</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/526</guid>
      <comments>https://normal-engineer.tistory.com/526#entry526comment</comments>
      <pubDate>Thu, 12 Mar 2026 05:42:54 +0900</pubDate>
    </item>
    <item>
      <title>[클로드코드] Claude.code 자료 모음</title>
      <link>https://normal-engineer.tistory.com/525</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;최근에 AI를 활용한 코딩을 어떻게 할 것인가에 대한 논의가 많다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vscode 내에서도 copilot을 이용할 수 있고, CURSOR라는 소프트웨어도 IDE와 AI를 통한 코드 작성을 합친 편한 기능을 제공했다.&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;Cursor의 등장 후에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OpenAI (chatGPT)에서는 &lt;a href=&quot;https://chatgpt.com/codex?utm_source=google&amp;amp;utm_medium=paid_search&amp;amp;utm_campaign=GOOG_M_SEM_GBR_Codex_TEM_BAU_ACQ_PER_MIX_ALL_NAMER_US_EN_111325&amp;amp;c_id=23226110534&amp;amp;c_agid=188421385415&amp;amp;c_crid=795598970763&amp;amp;c_kwid={keywordid}&amp;amp;c_ims=&amp;amp;c_pms=9199231&amp;amp;c_nw=g&amp;amp;c_dvc=c&amp;amp;gad_source=1&amp;amp;gad_campaignid=23226110534&amp;amp;gbraid=0AAAAA-I0E5dZ_5lFCKpMd5vbbrmG9b8Ii&amp;amp;gclid=Cj0KCQiA2bTNBhDjARIsAK89wlGj0_numPFN928KezHSf4emmBZ8WcyHXejY6Uu_uXFcJu7lPBAf2QAaAmuTEALw_wcB&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CODEX&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;1405&quot; data-origin-height=&quot;856&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kNGm2/dJMcafMzksx/dkRXuHCt3MtRRxe6FV6b1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kNGm2/dJMcafMzksx/dkRXuHCt3MtRRxe6FV6b1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kNGm2/dJMcafMzksx/dkRXuHCt3MtRRxe6FV6b1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkNGm2%2FdJMcafMzksx%2FdkRXuHCt3MtRRxe6FV6b1k%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;1405&quot; height=&quot;856&quot; data-origin-width=&quot;1405&quot; data-origin-height=&quot;856&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;구글(Gemini)에서는 &lt;a href=&quot;https://antigravity.google/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Google antigravity&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;1646&quot; data-origin-height=&quot;765&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uFwKS/dJMcafTjCbe/tKSTg5xjdaZo9GurasRBnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uFwKS/dJMcafTjCbe/tKSTg5xjdaZo9GurasRBnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uFwKS/dJMcafTjCbe/tKSTg5xjdaZo9GurasRBnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuFwKS%2FdJMcafTjCbe%2FtKSTg5xjdaZo9GurasRBnk%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;1646&quot; height=&quot;765&quot; data-origin-width=&quot;1646&quot; data-origin-height=&quot;765&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;둘 다 코드 편집을 위한 IDE와 AI를 같이 쓸 수 있는 프로그램이다.&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;이미 Cursor를 쓰고 있었고 꽤 만족하고 있었다.&lt;/span&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클로드 코드는 터미널에서 코드를 편집할 수 있도록 한 프로그램으로, 현재 기준 pro 버전을 구독해야 쓸 수 있다. 보통은 IDE에서 코드를 편집하니, VSCODE나 CURSOR 등에서도 사용할 수 있다.&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;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;1. Anthropic 회사에서 직접 만든 클로드 코드 강의 : &lt;a href=&quot;https://anthropic.skilljar.com/claude-code-in-action/303233&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://anthropic.skilljar.com/claude-code-in-action/303233&lt;/a&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;2. Claude code 101 : &lt;a href=&quot;https://m1zz.github.io/ClaudeCode101/index.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://m1zz.github.io/ClaudeCode101/index.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1772993469382&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;Claude Code 101 &amp;mdash; 완전 입문 가이드&quot; data-og-description=&quot;설치부터 실전 프로젝트까지, AI 에이전틱 코딩 완전 정복&quot; data-og-host=&quot;m1zz.github.io&quot; data-og-source-url=&quot;https://m1zz.github.io/ClaudeCode101/index.html&quot; data-og-url=&quot;https://m1zz.github.io/ClaudeCode101/index.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ujst2/dJMb83SgSqg/uVV0DIVyjZKUBkD2sgkDEK/img.jpg?width=1125&amp;amp;height=1386&amp;amp;face=0_0_1125_1386&quot;&gt;&lt;a href=&quot;https://m1zz.github.io/ClaudeCode101/index.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://m1zz.github.io/ClaudeCode101/index.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ujst2/dJMb83SgSqg/uVV0DIVyjZKUBkD2sgkDEK/img.jpg?width=1125&amp;amp;height=1386&amp;amp;face=0_0_1125_1386');&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;Claude Code 101 &amp;mdash; 완전 입문 가이드&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;설치부터 실전 프로젝트까지, AI 에이전틱 코딩 완전 정복&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;m1zz.github.io&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;3. &lt;a href=&quot;https://cc101.axwith.com/ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://cc101.axwith.com/ko&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1772993720459&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;CC101 &amp;mdash; Claude Code 한국어 입문 가이드&quot; data-og-description=&quot;Claude Code 설치부터 CLAUDE.md, MCP, Skills, Hooks까지 &amp;mdash; 공식 문서 기반으로 쉽게 정리한 한국어 입문 가이드&quot; data-og-host=&quot;cc101.axwith.com&quot; data-og-source-url=&quot;https://cc101.axwith.com/ko&quot; data-og-url=&quot;https://cc101.axwith.com/ko&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/BFXmN/dJMb9hCZmRV/zSsKSpYMxK8NeWdH0KtHsk/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/rgLIS/dJMb9eTNJJq/s4lNgL21jHE5yctS3zkMf1/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://cc101.axwith.com/ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://cc101.axwith.com/ko&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/BFXmN/dJMb9hCZmRV/zSsKSpYMxK8NeWdH0KtHsk/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/rgLIS/dJMb9eTNJJq/s4lNgL21jHE5yctS3zkMf1/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;CC101 &amp;mdash; Claude Code 한국어 입문 가이드&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Claude Code 설치부터 CLAUDE.md, MCP, Skills, Hooks까지 &amp;mdash; 공식 문서 기반으로 쉽게 정리한 한국어 입문 가이드&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;cc101.axwith.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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍 Programming</category>
      <category>AI</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/525</guid>
      <comments>https://normal-engineer.tistory.com/525#entry525comment</comments>
      <pubDate>Mon, 9 Mar 2026 03:15:50 +0900</pubDate>
    </item>
    <item>
      <title>[Graphics] Signed distance fields / functions (SDFs)</title>
      <link>https://normal-engineer.tistory.com/524</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Signed distance fields (SDFs) / Signed distance functions&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;특정 점의 position을 입력으로 받으면 그 shape에서 가장 가까운 점으로부터의 거리를 알려주는 함수다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 함수는 Finite element method에서처럼 explicit하게 어떤 위치에 어떤 점이 있는지를 나타내는 것이 아니기 때문에 implicit curves or surfaces라고 표현하기도 한다.&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://numfactory.upc.edu/web/Geometria/signedDistances.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://numfactory.upc.edu/web/Geometria/signedDistances.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1772395074531&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;Signed Distance Function (SDF): Implicit curves or surfaces&quot; data-og-description=&quot;Signed Distance Function (SDF): Implicit curves or surfaces A mathematical equation usually involves the relationship between several unknowns. For exemple: In this case, the relation between is implicit because none of then are expressed in terms of the o&quot; data-og-host=&quot;numfactory.upc.edu&quot; data-og-source-url=&quot;https://numfactory.upc.edu/web/Geometria/signedDistances.html&quot; data-og-url=&quot;https://numfactory.upc.edu/web/Geometria/signedDistances.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://numfactory.upc.edu/web/Geometria/signedDistances.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://numfactory.upc.edu/web/Geometria/signedDistances.html&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;Signed Distance Function (SDF): Implicit curves or surfaces&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Signed Distance Function (SDF): Implicit curves or surfaces A mathematical equation usually involves the relationship between several unknowns. For exemple: In this case, the relation between is implicit because none of then are expressed in terms of the o&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;numfactory.upc.edu&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 사이트에서 SDFs의 예시를 가져왔다.&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;b&gt;1. 2 Dimensional 일 때&lt;/b&gt;&lt;/h2&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;b&gt;1-1. Circle&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 대표적인 것이 원이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 2d 공간에서 원을 정의할 때 다음과 같이 implicit function으로 나타낸다.&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;$$(x-a)^2 + (y-b)^2 -1=0$$&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;이 원을 그리면 원점이 $(a,b)$이고 반지름이 1인 원임을 알 수 있다. 우리가 만약 d를 다음과 같이 정의한다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$d(x,y) = (x-a)^2 + (y-b)^2 -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;특정 점이 주어질 때 거리 $d$를 계산할 수 있다. 입력 점 좌표가 원 내부이면 음수, 외부이면 양수가 나온다.&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;560&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXTgI0/dJMcaih7EqI/uBEJAcA4VkLqKh6k2RSmm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXTgI0/dJMcaih7EqI/uBEJAcA4VkLqKh6k2RSmm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXTgI0/dJMcaih7EqI/uBEJAcA4VkLqKh6k2RSmm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXTgI0%2FdJMcaih7EqI%2FuBEJAcA4VkLqKh6k2RSmm1%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;560&quot; height=&quot;420&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;420&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yuUAK/dJMcahDveTu/jJru0UpFga245WsDBk2jkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yuUAK/dJMcahDveTu/jJru0UpFga245WsDBk2jkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yuUAK/dJMcahDveTu/jJru0UpFga245WsDBk2jkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyuUAK%2FdJMcahDveTu%2FjJru0UpFga245WsDBk2jkk%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;560&quot; height=&quot;420&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;420&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1-2. Segment&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같은 선분($S_{AB}$)이 주어질 때 어떠한 포인트 $(x,y)$를 주면 그 선분에 가장 가까운 거리를 구해야 한다.&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;$$S_{AB} : (x,y)=\lambda A+(1-\lambda)B \quad \lambda \in [0,1]$$&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;628&quot; data-origin-height=&quot;554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A69HB/dJMcaiWHn1T/YKAZJ8VZdB7Q6NknTSPV9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A69HB/dJMcaiWHn1T/YKAZJ8VZdB7Q6NknTSPV9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A69HB/dJMcaiWHn1T/YKAZJ8VZdB7Q6NknTSPV9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA69HB%2FdJMcaiWHn1T%2FYKAZJ8VZdB7Q6NknTSPV9K%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;628&quot; height=&quot;554&quot; data-origin-width=&quot;628&quot; data-origin-height=&quot;554&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;1번 영역에서는 $d(P,S_{AB})=d(P,Q)$ - P와 그 선분에 Projection한 점 Q 사이의 거리를 구한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2번 영역에서는 $d(P,S_{AB})=d(P,A)$ - P와 선분의 끝 A 사이의 거리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3번 영역에서는 $d(P,S_{AB})=d(P,B)$ - P와 선분의 끝 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;이렇게 세 부분으로 나눠서 계산할 수 있다.&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;따라서 코드 상에서는 SDF를 정의할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\lambda=\frac{\langle P-A, B-A \rangle}{ \langle B-A,B-A \rangle }$$를 계산한 다음에 이 $\lambda$를 $[0,1]$ 안으로 clipping한 $lambda$값을 선분 방정식에 넣은 점과의 거리로 정의한다.&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;$\lambda$가 0보다 작을 경우에는 점 A에 projection되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\lambda$가 1보다 클 경우에는 점 B에 projection하기 위해서이다.&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;따라서 SDF를 다음과 같이 정의할 수 있다.&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;$$d(P,S_{AB})=d(P,Q)&amp;nbsp;\quad&amp;nbsp;{such&amp;nbsp;that}&amp;nbsp;Q=\lambda&amp;nbsp;A&amp;nbsp;+(1-\lambda)B&amp;nbsp;\text[&amp;nbsp;where&amp;nbsp;}\lambda=&amp;nbsp;\min\left(1,&amp;nbsp;\max&amp;nbsp;\left(&amp;nbsp;\frac{&amp;nbsp;\langle&amp;nbsp;P-A,&amp;nbsp;B-A&amp;nbsp;\rangle&amp;nbsp;}{&amp;nbsp;\langle&amp;nbsp;B-A,B-A&amp;nbsp;\rangle&amp;nbsp;}\right)\right)$$&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;b&gt;2. 3 Dimensional일 때&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2-1. Cube&lt;/b&gt;&lt;/h3&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;687&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ESs5R/dJMcac9ZSED/iPEc7e1yP3f4TfCpPfLpXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ESs5R/dJMcac9ZSED/iPEc7e1yP3f4TfCpPfLpXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ESs5R/dJMcac9ZSED/iPEc7e1yP3f4TfCpPfLpXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FESs5R%2FdJMcac9ZSED%2FiPEc7e1yP3f4TfCpPfLpXk%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;687&quot; height=&quot;604&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;604&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;다음과 같이 cube 거리를 계산할 때는 선분 거리 계산 때와 같이 영역을 나눠서 계산할 수 있다.&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 $d=P_x -R_x$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영역 2 $d=P_y - R_y$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영역 3 $d=\sqrt{ (P_x - R_x)^2 + (P_y - R_y)^2 }$&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;$$d = \left\lVert \max\left( \lvert P \rvert - R,\, 0 \right) \right\rVert&amp;nbsp;&amp;nbsp; &amp;nbsp; -&amp;nbsp;\min\left(&amp;nbsp;\left\lVert&amp;nbsp;\lvert&amp;nbsp;P&amp;nbsp;\rvert&amp;nbsp;-&amp;nbsp;R&amp;nbsp;\right\rVert_{\infty},\,&amp;nbsp;0&amp;nbsp;\right)$$&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;703&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xsbKo/dJMcabpNH2C/yLbYvVH150EK4uGO70ohD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xsbKo/dJMcabpNH2C/yLbYvVH150EK4uGO70ohD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xsbKo/dJMcabpNH2C/yLbYvVH150EK4uGO70ohD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxsbKo%2FdJMcabpNH2C%2FyLbYvVH150EK4uGO70ohD1%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;703&quot; height=&quot;630&quot; data-origin-width=&quot;703&quot; data-origin-height=&quot;630&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;&amp;nbsp;&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;style5&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;SDFs는 mesh를 만들어야한다는 제약이 덜하기 때문에 유용하게 쓸 수 있을까 싶어서 공부 중이다.&lt;/p&gt;</description>
      <category>Signed Distance Functions</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/524</guid>
      <comments>https://normal-engineer.tistory.com/524#entry524comment</comments>
      <pubDate>Mon, 2 Mar 2026 06:21:33 +0900</pubDate>
    </item>
    <item>
      <title>[추정] Maximum likelihood estimator (MLE), Maximum a posterior Estimator(MAP)</title>
      <link>https://normal-engineer.tistory.com/523</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Estimation에 대해 알기 전에 읽어두면 도움이 되는 글 :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://normal-engineer.tistory.com/191&quot;&gt;https://normal-engineer.tistory.com/191&lt;/a&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;Estimation을 공부하다보면 무조건 나오는 것이 Maximum Likelihood Estimator와 Maximum A-Posterior Estimator다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 두 개 개념을 정확히 해놓으면 나중에 칼만 필터와 같은 이론을 공부할 때도 매우 도움이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추정 이론을 공부하려면 수학과의 probability &amp;amp; statistics 내용을 기본적으로 알고 있어야 한다.&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 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;0. Estimation for what?&lt;/b&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;추정론을 할 때 가장 기본적인 생각은 &quot;무엇&quot;을 추정하고자 하는지 명확하게 해야한다는 것이다. 대부분은 데이터가 있고, 그 데이터를 예측하기 위한 모델의 &quot;파라미터&quot;를 추정하겠다, 라는 것이 그 골자이다.&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;머신러닝에서 처음 시작할 때 확률론적인 가정이 없다면 linear regression을 할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$y = w^{\top}x + b$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같은 모델에서 $w,b$가 deterministic하다고 생각하고 $w,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;그러나 우리가 얻는 결과값이 정해지는 게 아니라 확률적인 것이라 생각하면 그 문제의 formulation이 조금 달라진다. - 결론적으로는 최적화 문제로 귀결되어 최적화 알고리즘을 적용하게 되는 경우가 많지만, 문제의 가정과 모델링에 따라 그 formulation이 달라진다.&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;i&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;u&gt;&lt;i&gt;&lt;b&gt;random variable&lt;/b&gt;&lt;/i&gt;&lt;/u&gt;이라 하자. (Random variable이 무엇인가? 확률론에 기반한 설명보다는 여기서는 간단하게 특정 확률 분포를 갖는 어떤 스칼라값이라고 하자.) 그러면 그 random variable에 대해 알고 싶다할 때 그 random variable의 확률 분포를 특정 파라미터가 포함된 모델이라 가정하고 데이터를 기반으로 파라미터를 추정할 수 있다. 예를 들어 random variable이 가우시안 분포라고 가정한다면 평균과 분산을 추정함으로써 그 random variable의 분포를 예상할 수 있다.&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;그렇다면 우리가 알고 싶은 파라미터를 가장 &quot;그럴 듯한&quot; 값으로 추정해보고 싶은데 어떻게 해야할까?&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 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. Maximum likelihood estimator (MLE)&lt;/b&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;누군가는 주어진 데이터를 보고 어떤 파라미터를 적용하면 그 데이터가 나올 확률이 가장 높은 것이 가장 좋은 파라미터라고 생각할 수 있다. 직관적이고 그럴 듯하다. 이 방법을 Maximum likelihood estimator라고 한다.&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;$$\hat{\theta}_{mle}=\arg\max_\theta L(\theta;x_1, \ldots, x_N) $$&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;다음과 같이 Likelihood를 정의하고 그 값이 최대가 되는 파라미터 $\theta$를 구한다. 일반적으로는 log를 씌워서 log-likelihood로 만들어서 구하기도 한다. log는 단조증가함수이기 때문에 함수의 최대값이 변하지 않기 때문이다.&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;$$\hat{\theta}_{mle}=\arg\max_\theta \log L(\theta;x_1, \ldots, x_N)= \arg\max_\theta \ell(\theta;x_1, \ldots, x_N) $$&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;이 때 데이터가 $x_1, x_2, \ldots, x_N$가 존재하므로 joint distribution를 구해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MLE는 사실 예시가 두 개 정도 정해져있고 직관적으로 이해하기도 편하다. 왜냐하면 솔루션을 수식으로 표현할 수 있기 때문이다.&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;b&gt;Example : free throw shooting&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 코인을 던졌을 때 앞면(Head)가 나올 확률이 $\theta$, 뒷면(Tail)이 나올 확률이 $1-\theta$이라고 하자. N번의 observations이 주어질 때 ($x_1,x_2,\ldots,x_N$) MLE로 $\theta$를 추정해보자.&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;처음 Likelihood를 작성하면서 시작한다. 앞면일 때의 observation을 $x=1$, 뒷면일 때 $x=0$이라 한다면 각 observation의 확률은 $\theta^x \times (1-\theta)^x$가 된다. $x=1$일 때 $\theta$, $x=0$일 때 $1-\theta$로 확률이 일치한다.&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;$$L(\theta; x_1,\ldots,x_N) = \prod_{n=1}^{N} \theta^{x_n} (1-\theta)^{1-x_n}$$&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;각 observation이 독립이라고 가정한다면 $x_1$부터 $x_N$이 동시에 일어날 확률을 단순 곱으로 표현할 수 있다.&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;$S_N=\sum_{n=1}^{N}x_n$라고 둔다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L(\theta;x_1,\ldots,x_N) =\theta^{S_N} (1-\theta)^{N-S_N}$$&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;$$\ell(\theta; x_1, \ldots, x_N)= S_N \log \theta + (N - S_N)\log(1 - \theta)$$&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;여기서 최대값을 구하기 위해 $\theta$에 대해 미분한다.&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;$$\frac{d\ell(\theta; \cdot)}{d\theta} = \frac{S_N}{\theta} - \frac{N - S_N}{1 - \theta}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{d^2\ell(\theta; \cdot)}{d\theta^2}= -\frac{S_N}{\theta^2} - \frac{N - S_N}{(1 - \theta)^2}$$&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;첫 번째 식이 0이 되는 $\theta$가 곧 MLE다. 대신 최대값인지 확인하기 위해 Second derivative까지 확인해야한다.&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;$$\theta_{mle} = \frac{S_N}{N}=\frac{1}{N}\sum_{n=1}^{N}x_n$$&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;즉, 내가 나온 Head의 개수의 평균이 곧 $\theta$라는 것을 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. Maximum A-posterior Estimator&lt;/b&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;MLE는 굉장히 유용한 방법이기는 하지만 우리가 어느정도 사전지식을 갖고 있을 때는 이를 반영해줄 필요가 있다. 예를 들어 위의 예시에서 코인이 있는데 어느정도 코인이 살짝 구부러져있어서 앞면이 더 나올 가능성이 높다는 걸 알고 있다해보자. 그렇다면 MLE를 적용하기보다는 이를 고려한 추정기가 훨씬 그럴 듯할 것이다.&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;사실 칼만 필터 역시 우리가 dynamics를 알고 있을 때, 이전 스텝의 state가 이후 스텝의 state에 영향을 준다는 사실을 알고 있다. 그래서 이전 정보를 활용해서 정확한 현재 state를 추정할 수 있는 것이다. 따라서 우리는 Bayesian estimator를 사용함으로써 더 정확한 추정치를 알 수 있다. 그래서 이번 장에서는 Bayesian estimator를 적용함으로써 추정 결과가 어떻게 바뀌는지를 확인할 것이다.&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;A-posterior를 구하기 위해 우리는 궁금한 파라미터 $\theta$가 a random variable이라고 가정한다. 따라서 $\theta$를 추정하는 문제가 deterministic이 아니라 probabilistic 문제로 바뀌는 것이다. $\theta$가 고정된 값이 아니기 때문에 $\theta$에 대한 확률 분포가 필요하다.&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;$\Theta \~ f_{\Theta}(\theta)$&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;보통 $\Theta$를 random variable이라고 한다면 $\theta$는 그 realization이다. 즉, $\Theta=1$일 때 $\theta$는 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;우리가 관찰한 데이터 $X$는 $Theta$에 따라 확률이 달라진다고 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$X \~ f_{X}(x|\Theta=\theta).$$&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;이 때 특정 관찰 데이터 $x$가 주어질 때 우리가 궁금한 파라미터 $\Theta$가 $\theta$일 확률은 다음과 같이 구할 수 있다.&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;$$f_{\Theta}(\theta | X=x) =\frac{f_{X}(x|\Theta=\theta) f_{\Theta}(\theta)}{f_{X}(x)}$$&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;우리가 구하고자 하는 $f_{\Theta}(\theta)$은 관찰 결과가 있기 전에 존재하는 확률 분포이므로 prior, 관찰값 $x$를 보고 추정하는 확률 분포 $f_{\Theta}(\theta|x)$는 posterior라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 maximum a-posterior estimator는 posterior 확률을 극대화하는 $\theta$를 구하는 추정 문제를 풀어야 한다.&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;참고로 normalizing factor인 $f_{X}(x)$는&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;$$f_{X}(x)=\int_{\theta \in \mathcal{T}} f_{X}(x|\Theta=\theta)f_{\Theta}(\theta)d\theta$$와 같이 적분으로 구해줘야한다.&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;$\Theta$가 discrete variable인 경우에는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$f_{X}(x)= \sum_{\theta \in \mathcal{T}} f_{X}(x|\Theta=\theta)P(\Theta=\theta) $$&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Example : free throw shooting&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 이전과 동일한 free throw shooting 문제를 $\theta$에 대한 확률분포 $f_{\Theta}(\theta)$를 도입해서 풀어보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 알고 싶은 것은 동전이 앞면이 나올 확률($\theta$)이다. (뒷면이 나올 확률은 자연히 $1-\theta$가 된다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 우리가 동전을 만드는 공정을 다 알고 있어서 동전의 확률이 $\theta=1/2$에서 1이고 나머지는 0이라는 것을 안다면 maximum a-posterior estimator는 어떠한 observations이 있어도 $\theta=1/2$를 출력할 것이다.&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;지금은 $f_{\Theta}(\theta)=\text{Uniform}([0,1])=1 \; \forall \theta=[0,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;그러면 이 정보를 바탕으로 $X_1 =1$일 때 posterior를 구해보자.&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;$$f_{\Theta}(\theta \mid X_1 = 1)=\frac{f_X(X_1 = 1 \mid \Theta = \theta)\, f_{\Theta}(\theta)}{f_X(X_1 = 1)}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$f_X(X_1 = 1)=\int_{0}^{1} \theta \, f_{\Theta}(\theta)\, d\theta= &lt;br /&gt;\int_{0}^{1} \theta \, d\theta= &lt;br /&gt;\left[&amp;nbsp;\frac{\theta^2}{2}&amp;nbsp;\right]_{0}^{1} &lt;br /&gt;= &lt;br /&gt;\frac{1}{2} &lt;br /&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;$$f_{\Theta}(\theta&amp;nbsp;\mid&amp;nbsp;X_1&amp;nbsp;=&amp;nbsp;1) &lt;br /&gt;= &lt;br /&gt;\frac{\theta&amp;nbsp;\cdot&amp;nbsp;1}{1/2} &lt;br /&gt;= &lt;br /&gt;2\theta &lt;br /&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;따라서 $f_{\Theta}(\theta \mid X_1=1)$을 최대화하기 위한 $\theta$는 1이 된다. ($\theta \in[0,1]$)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 우리가 더 많은 관찰 결과를 가진다면 ($X_1, X_2, X_3, X_4,...$) 그 확률은 달라질 것이다.&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;예를 들어 $ X_1=1,X_2=0,X_3=1,X_4=1$일 때,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$f_{\Theta}(\theta|X_1=1,X_2=0,X_3=1,X_4=1)=\frac{f_{X}(X_1=1,X_2=0,X_3=1,X_4=1|\Theta=\theta)}{f_{X}(X_1=1,X_2=0,X_3=1,X_4=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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분자의 경우 $\theta^3(1-\theta)$로 쉽게 나오지만 분모를 구하려면 $$\int_0^1 \theta^3(1-\theta)d\theta$$를 계산해야하므로 좀 더 복잡하다. 이 경우 감마함수를 사용하면 구할 수 있다. 하지만 MAP를 적용하는 관점에서 $f_X$는 $\theta$와 무관한 값이기 때문에 구할 필요가 없다. 즉, 분자만 따졌을 때는 이전에 구했던 MLE 문제와 크게 다르지 않다는 결론이 나온다.&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;왜 이런 결론이 나왔을까? 우리가 $\theta$의 분포를 uniform하다고 가정했기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, $\theta$에 대한 사전 정보에 따라서 MAP 결과가 달라질 수 있다.&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;b&gt;3. 종합&lt;/b&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;MLE와 MAP 외에도 MMSE 등 다른 Estimator가 있는데 이는 나중에 기회가 되면 더 설명하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요한 것은 MLE와 MAP에서 $\theta$에 대한 가정을 달리함으로써 다르게 추정할 수 있음을 이해하는 것이다.&lt;/p&gt;</description>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/523</guid>
      <comments>https://normal-engineer.tistory.com/523#entry523comment</comments>
      <pubDate>Thu, 12 Feb 2026 11:46:16 +0900</pubDate>
    </item>
    <item>
      <title>[JAX] JAX 최신버전(0.8.0~0.9.0) GPU 체크</title>
      <link>https://normal-engineer.tistory.com/521</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;본인의 컴퓨터나 노트북에 NVIDIA GPU가 있고 CUDA가 이미 설치되어있는 것을 전제로 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 가상환경을 conda에서 만들어서 그 안에서 최신 버전의 JAX를 설치하는 과정이다. (일반적으로 JAX를 pip으로 설치하면 무조건 최신버전을 설치하도록 된다.)&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;설치한 JAX 버전은 현재 기준으로 가장 최신인 0.9.0이다. 이전 버전을 설치하고 싶다면 &lt;a href=&quot;https://normal-engineer.tistory.com/313&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;다음 글&lt;/a&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;1768&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSaroJ/dJMcagRRxol/vQUKqbpGtWXUTwKqokFAZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSaroJ/dJMcagRRxol/vQUKqbpGtWXUTwKqokFAZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSaroJ/dJMcagRRxol/vQUKqbpGtWXUTwKqokFAZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSaroJ%2FdJMcagRRxol%2FvQUKqbpGtWXUTwKqokFAZk%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;1768&quot; height=&quot;826&quot; data-origin-width=&quot;1768&quot; data-origin-height=&quot;826&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;b&gt;나는 주로 Linux x86_64, Windows WSL2 환경을 사용한다.&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;다음 커맨드를 실행하면 JAX GPU 버전이 설치가 되는데 여기서 가정하는 것은 CUDA가 적절하게 설치되어있다는 것이다.&lt;/p&gt;
&lt;pre id=&quot;code_1769441975546&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install --upgrade &quot;jax[cuda12]&quot;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근에는 JAX installation 문서가 잘 업데이트되어서 설치하는 데에 크게 어려움은 없다. 다만 설치하고 gpu를 잘 사용되는지 확인하고자 한다면 다음 처럼 확인해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1769441848244&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;python # ubuntu 환경에서 python 실행
&amp;gt;&amp;gt; import jax
&amp;gt;&amp;gt; print( jax.default_backend() )&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;591&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckYJUP/dJMb99ZvfA7/6iACqggmToKsupJvXCO2YK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckYJUP/dJMb99ZvfA7/6iACqggmToKsupJvXCO2YK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckYJUP/dJMb99ZvfA7/6iACqggmToKsupJvXCO2YK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckYJUP%2FdJMb99ZvfA7%2F6iACqggmToKsupJvXCO2YK%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;1738&quot; height=&quot;591&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;591&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;그러면 CPU를 사용한다고 나온다. 이런 문제는 보통 CUDA가 전체 컴퓨터에 설치되어있다하더라도 내가 셋업하고 있는 환경 안에서 CUDA를 읽어들이지 못하는 경우이다. 따라서 환경의 안정성을 위해서는 각 가상환경마다 NVIDIA CUDA를 설치해주는 게 좋긴 하다. (다만 이런 환경이 많이 늘어난 상태라 용량이 문제가 된다면 언젠가는 정리해야할 것 같기도...) 다음 커맨드가 가상환경 내에서 CUDA를 사용하기 위한 library까지 포함해서 설치하는 것이다.&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;(Note : 옛날에 윈도우 자체에서 CUDA 버전을 여러 개 설치해서 사용을 했었는데 이러면 각 CUDA와 가상환경 사이에 읽어들이는 게 꼬이기 쉬웠었다.)&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;CUDA를 사용하는지 확실하게 하기 위해서는 다음 Command도 다시 설치해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1197&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ySOZF/dJMcaia4rcD/GMuDjZBj5FY9v1pIzK6E4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ySOZF/dJMcaia4rcD/GMuDjZBj5FY9v1pIzK6E4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ySOZF/dJMcaia4rcD/GMuDjZBj5FY9v1pIzK6E4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FySOZF%2FdJMcaia4rcD%2FGMuDjZBj5FY9v1pIzK6E4k%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;1197&quot; height=&quot;421&quot; data-origin-width=&quot;1197&quot; data-origin-height=&quot;421&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;이렇게 하면 cudnn을 비롯한 CUDA를 사용하기 위한 많은 라이브러리들을 설치하도록 되어있다.&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;1022&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7supZ/dJMcahDcMRw/e7G8Fcn9elQxkmkNgRCPo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7supZ/dJMcahDcMRw/e7G8Fcn9elQxkmkNgRCPo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7supZ/dJMcahDcMRw/e7G8Fcn9elQxkmkNgRCPo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7supZ%2FdJMcahDcMRw%2Fe7G8Fcn9elQxkmkNgRCPo1%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;1022&quot; height=&quot;288&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;288&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;이제는 GPU를 인식하는 것을 확인할 수 있다.&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>
      <category>프로그래밍 Programming</category>
      <category>GPU</category>
      <category>JAX</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/521</guid>
      <comments>https://normal-engineer.tistory.com/521#entry521comment</comments>
      <pubDate>Tue, 27 Jan 2026 00:47:41 +0900</pubDate>
    </item>
    <item>
      <title>[논문] 일러스트레이터에서 LaTeX 사용하는 법</title>
      <link>https://normal-engineer.tistory.com/520</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;일러스트레이터에서 작업하는데 평소에 쓰는 powerpoint나 draw.io와 달리 LaTeX를 사용할 수 없다는 것을 깨달았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 powerpoint에서 LaTeX를 플러그인으로 사용했던 것처럼 비슷한 방법을 찾아보았다.&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;b&gt;1. LaTeX2AI&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 플러그인은 illustrator에서 latex을 쓸 수 있도록 만든 플러그인이다.&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://github.com/isteinbrecher/LaTeX2AI&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/isteinbrecher/LaTeX2AI&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768944538278&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 - isteinbrecher/LaTeX2AI: LaTeX Plugin for Adobe Illustrator&quot; data-og-description=&quot;LaTeX Plugin for Adobe Illustrator. Contribute to isteinbrecher/LaTeX2AI development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/isteinbrecher/LaTeX2AI&quot; data-og-url=&quot;https://github.com/isteinbrecher/LaTeX2AI&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/E5vGw/dJMb8SpBSgv/svJAZQv9jAbTYlduMS5P20/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213,https://scrap.kakaocdn.net/dn/dznSKB/dJMb8Z3lbMJ/RRhCcvpiyOTkNc3ullRD40/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213&quot;&gt;&lt;a href=&quot;https://github.com/isteinbrecher/LaTeX2AI&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/isteinbrecher/LaTeX2AI&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/E5vGw/dJMb8SpBSgv/svJAZQv9jAbTYlduMS5P20/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213,https://scrap.kakaocdn.net/dn/dznSKB/dJMb8Z3lbMJ/RRhCcvpiyOTkNc3ullRD40/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213');&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 - isteinbrecher/LaTeX2AI: LaTeX Plugin for Adobe Illustrator&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;LaTeX Plugin for Adobe Illustrator. Contribute to isteinbrecher/LaTeX2AI development by creating an account on GitHub.&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;p data-ke-size=&quot;size16&quot;&gt;기본적으로 MikTeX와 같은 TeX 컴파일러가 설치되어 있어야한다.&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;&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;b&gt;2. 파일 다운로드&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/isteinbrecher/latex2ai/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/isteinbrecher/latex2ai/releases&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768947066024&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;Releases &amp;middot; isteinbrecher/LaTeX2AI&quot; data-og-description=&quot;LaTeX Plugin for Adobe Illustrator. Contribute to isteinbrecher/LaTeX2AI development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/isteinbrecher/latex2ai/releases&quot; data-og-url=&quot;https://github.com/isteinbrecher/LaTeX2AI/releases&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/CCjxU/dJMb9eTJz1G/j4MWhbWSkcAr3TZTLZZefK/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213,https://scrap.kakaocdn.net/dn/bwOK4D/dJMb9bvWgs8/KxUHQRB7Jzf2YOxpYRpYsk/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213&quot;&gt;&lt;a href=&quot;https://github.com/isteinbrecher/latex2ai/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/isteinbrecher/latex2ai/releases&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/CCjxU/dJMb9eTJz1G/j4MWhbWSkcAr3TZTLZZefK/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213,https://scrap.kakaocdn.net/dn/bwOK4D/dJMb9bvWgs8/KxUHQRB7Jzf2YOxpYRpYsk/img.png?width=1200&amp;amp;height=600&amp;amp;face=965_131_1040_213');&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;Releases &amp;middot; isteinbrecher/LaTeX2AI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;LaTeX Plugin for Adobe Illustrator. Contribute to isteinbrecher/LaTeX2AI development by creating an account on GitHub.&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;다음에 최신 zip파일을 다운받고 압축을 푼다.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 인터페이스 파일 om.isteinbrecher.latex2ai 을 특정 폴더에 복사하기&lt;/b&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;Interface를 보이기 위함이라서&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;br /&gt;C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\Adobe\CEP\extensions&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;다음 경로에 위 폴더를 복사해준다. Adobe에 들어가도 CEP\extensions 폴더가 없을 수 있는데 직접 만들어주면 된다.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. 플러그인 경로 설정&lt;/b&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;다음과 같이 Plug in &amp;amp; Scratch Disks에서&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;1087&quot; data-origin-height=&quot;1537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKuMwJ/dJMcagROWOF/KWpiUzEtPp1x1C9hKAMEa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKuMwJ/dJMcagROWOF/KWpiUzEtPp1x1C9hKAMEa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKuMwJ/dJMcagROWOF/KWpiUzEtPp1x1C9hKAMEa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKuMwJ%2FdJMcagROWOF%2FKWpiUzEtPp1x1C9hKAMEa0%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;1087&quot; height=&quot;1537&quot; data-origin-width=&quot;1087&quot; data-origin-height=&quot;1537&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;190&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vylyp/dJMcadAJJW8/KhZ1ilHr9aDi30Hoa9BIik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vylyp/dJMcadAJJW8/KhZ1ilHr9aDi30Hoa9BIik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vylyp/dJMcadAJJW8/KhZ1ilHr9aDi30Hoa9BIik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVylyp%2FdJMcadAJJW8%2FKhZ1ilHr9aDi30Hoa9BIik%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;850&quot; height=&quot;190&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;190&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;/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;1312&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGvEZf/dJMcafL9qGO/4qdPfnk9PItzzx0jsxLHTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGvEZf/dJMcafL9qGO/4qdPfnk9PItzzx0jsxLHTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGvEZf/dJMcafL9qGO/4qdPfnk9PItzzx0jsxLHTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGvEZf%2FdJMcafL9qGO%2F4qdPfnk9PItzzx0jsxLHTK%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;1312&quot; height=&quot;345&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;345&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;&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. 일러스트레이터 재부팅 후 windows &amp;gt; Toolbars &amp;gt; Advanced를 선택&lt;/b&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;다음과 같이 하면 옆 패널에 latex2AI 아이콘들이 추가된다.&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;137&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dO5jw6/dJMcacaPxrF/jkHVZlFWBoeHiedRVDZDfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dO5jw6/dJMcacaPxrF/jkHVZlFWBoeHiedRVDZDfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dO5jw6/dJMcacaPxrF/jkHVZlFWBoeHiedRVDZDfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdO5jw6%2FdJMcacaPxrF%2FjkHVZlFWBoeHiedRVDZDfK%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;137&quot; height=&quot;886&quot; data-origin-width=&quot;137&quot; data-origin-height=&quot;886&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타/논문작성 Writing</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/520</guid>
      <comments>https://normal-engineer.tistory.com/520#entry520comment</comments>
      <pubDate>Wed, 21 Jan 2026 07:14:44 +0900</pubDate>
    </item>
    <item>
      <title>[시뮬레이션] 미분가능 시뮬레이션 코드</title>
      <link>https://normal-engineer.tistory.com/519</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;미분가능 시뮬레이션과 관련된 오픈소스 코드도 많고 리뷰도 나와서 나중에 정리하려고 작성하는 글이다.&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/pdf/2407.05560&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/pdf/2407.05560&lt;/a&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;XLB : A&amp;nbsp;differentiable&amp;nbsp;massively&amp;nbsp;parallel&amp;nbsp;lattice&amp;nbsp;Boltzmann&amp;nbsp;library&amp;nbsp;in&amp;nbsp;Python&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/2311.16080&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/2311.16080&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1768611607802&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;XLB: A differentiable massively parallel lattice Boltzmann library in Python&quot; data-og-description=&quot;The lattice Boltzmann method (LBM) has emerged as a prominent technique for solving fluid dynamics problems due to its algorithmic potential for computational scalability. We introduce XLB library, a Python-based differentiable LBM library based on the JAX&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/2311.16080&quot; data-og-url=&quot;https://arxiv.org/abs/2311.16080v3&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ApQ19/dJMb9c9ryW1/UI4aYn2Iy01KwjWHtbcKx1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bPTBco/dJMb9eTJfng/E2O1JS9iDxQ04RUANggwlk/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/2311.16080&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/2311.16080&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ApQ19/dJMb9c9ryW1/UI4aYn2Iy01KwjWHtbcKx1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bPTBco/dJMb9eTJfng/E2O1JS9iDxQ04RUANggwlk/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;XLB: A differentiable massively parallel lattice Boltzmann library in Python&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The lattice Boltzmann method (LBM) has emerged as a prominent technique for solving fluid dynamics problems due to its algorithmic potential for computational scalability. We introduce XLB library, a Python-based differentiable LBM library based on the JAX&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;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;XPBD : Position-based simulation of compliant constrained dynamics&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://matthias-research.github.io/pages/publications/XPBD.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://matthias-research.github.io/pages/publications/XPBD.pdf&lt;/a&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;DiffXPBD&amp;nbsp;:&amp;nbsp;Differentiable&amp;nbsp;Position-Based&amp;nbsp;Simulation&amp;nbsp;of&amp;nbsp;Compliant&amp;nbsp;Constraint&amp;nbsp;Dynamics&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>수치해석 Numerical Analysis</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/519</guid>
      <comments>https://normal-engineer.tistory.com/519#entry519comment</comments>
      <pubDate>Sat, 17 Jan 2026 10:02:30 +0900</pubDate>
    </item>
    <item>
      <title>[실해석학] Space 개념 overview (1)</title>
      <link>https://normal-engineer.tistory.com/518</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;조금씩 정리한 내용을 올리고자 한다.&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;1. Real analysis by Bartle&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;300&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/epfGJY/dJMcaaKCgxa/TiXAaO55QZ07xic1PZRUvk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/epfGJY/dJMcaaKCgxa/TiXAaO55QZ07xic1PZRUvk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/epfGJY/dJMcaaKCgxa/TiXAaO55QZ07xic1PZRUvk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FepfGJY%2FdJMcaaKCgxa%2FTiXAaO55QZ07xic1PZRUvk%2Fimg.jpg&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;300&quot; height=&quot;431&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;431&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;2. Introduction to Hibert spaces with applications&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;629&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kTCZp/dJMcahiFWuD/FPeXlrpVkNV9mbB7qeTk60/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kTCZp/dJMcahiFWuD/FPeXlrpVkNV9mbB7qeTk60/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kTCZp/dJMcahiFWuD/FPeXlrpVkNV9mbB7qeTk60/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkTCZp%2FdJMcahiFWuD%2FFPeXlrpVkNV9mbB7qeTk60%2Fimg.jpg&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;470&quot; height=&quot;747&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&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;지금 설명할 내용을 가장 잘 요약한 diagram을 먼저 소개하고 시작한다.&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;830&quot; data-origin-height=&quot;577&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vgfSF/dJMb82TcwZc/x0TKnXfcmURLNJkJHePlW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vgfSF/dJMb82TcwZc/x0TKnXfcmURLNJkJHePlW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vgfSF/dJMb82TcwZc/x0TKnXfcmURLNJkJHePlW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvgfSF%2FdJMb82TcwZc%2Fx0TKnXfcmURLNJkJHePlW1%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;830&quot; height=&quot;577&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;577&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 :&amp;nbsp;&lt;b&gt;&lt;a href=&quot;https://math.stackexchange.com/questions/3326615/trying-to-visualize-the-hierarchy-of-mathematical-spaces&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://math.stackexchange.com/questions/3326615/trying-to-visualize-the-hierarchy-of-mathematical-spaces&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1760887653896&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;Trying to visualize the hierarchy of mathematical spaces&quot; data-og-description=&quot;I was inspired by this flowchart of mathematical sets and wanted to try and visualize it, since I internalize math best in that way. This is what I've come up with so far: Version 1 (old diagram)&quot; data-og-host=&quot;math.stackexchange.com&quot; data-og-source-url=&quot;https://math.stackexchange.com/questions/3326615/trying-to-visualize-the-hierarchy-of-mathematical-spaces&quot; data-og-url=&quot;https://math.stackexchange.com/questions/3326615/trying-to-visualize-the-hierarchy-of-mathematical-spaces&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cqx0lF/hyZL0rApnf/Z1zpiqEthC1HVs1lVESVU1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/b1cnhV/hyZLDLvMC9/ZVB8ONjivGEjDwvETM9XbK/img.png?width=878&amp;amp;height=410&amp;amp;face=0_0_878_410&quot;&gt;&lt;a href=&quot;https://math.stackexchange.com/questions/3326615/trying-to-visualize-the-hierarchy-of-mathematical-spaces&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://math.stackexchange.com/questions/3326615/trying-to-visualize-the-hierarchy-of-mathematical-spaces&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cqx0lF/hyZL0rApnf/Z1zpiqEthC1HVs1lVESVU1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/b1cnhV/hyZLDLvMC9/ZVB8ONjivGEjDwvETM9XbK/img.png?width=878&amp;amp;height=410&amp;amp;face=0_0_878_410');&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;Trying to visualize the hierarchy of mathematical spaces&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I was inspired by this flowchart of mathematical sets and wanted to try and visualize it, since I internalize math best in that way. This is what I've come up with so far: Version 1 (old diagram)&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;math.stackexchange.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;이 공간에 대한 정의를 알고 시작하면 그 이후에 나오는 정리들이 왜 그 공간에서 설명하는지를 알게 된다. 순차적으로 점점 공간의 범위를 좁혀가는 방향으로 설명한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글에서는 Vector space -&amp;gt; Metric space -&amp;gt; Normed vector space -&amp;gt; Inner product space 순서로 진행된다.&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;b&gt;1. Vector space&lt;/b&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;첫 번째로 다루는 것은 vector space이다. linear algebra를 배운 사람이라면 처음부터 vector space의 정의를 설명한다는 사실을 알고 있다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Definition : A vector space $\mathcal{S}$ is composed of a set of elements, called &lt;i&gt;vectors&lt;/i&gt;, and members of a field $\mathbb{F}$ called &lt;i&gt;scalars&lt;/i&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;벡터 공간은 벡터들과 스칼라값들의 set이라고 볼 수 있다. 여기서 중요한 것은 vector와 scalar이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벡터는 어떠한 것도 될 수 있다. 함수가 될 수도 있고, 우리가 아는 일반적인 실수 n개로 구성된 벡터일 수도 있다. 그 벡터들을 가지고 vector addition과 scalar multiplication이 다음과 같은 법칙을 만족해야한다.&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;i&gt;Vector addition&lt;/i&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;The&amp;nbsp;``$+$''&amp;nbsp;operation&amp;nbsp;must&amp;nbsp;obey&amp;nbsp;the&amp;nbsp;following&amp;nbsp;four&amp;nbsp;rules&amp;nbsp;for&amp;nbsp;all&amp;nbsp;$x,&amp;nbsp;y&amp;nbsp;\in&amp;nbsp;\mathcal{S}$:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$x + y = y + x$ (commutative)&lt;/li&gt;
&lt;li&gt;$x + (y + z) = (x + y) + z$ (associative)&lt;/li&gt;
&lt;li&gt;There is a unique \emph{zero vector} $0$ such that $x + 0 = x \quad \forall x \in \mathcal{S}.$&lt;/li&gt;
&lt;li&gt;For each vector $x \in \mathcal{S}$, there is a unique vector (called $-x$) such that&amp;nbsp; $x + (-x) = 0$&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;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;i&gt;Scalar multiplication&lt;/i&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$a(x + y) = ax + ay$&lt;/li&gt;
&lt;li&gt;$(a + b)x = ax + bx$&amp;nbsp;&lt;/li&gt;
&lt;li&gt;For the multiplicative identity of $\mathbb{F}$, which we write as $1$, we have $1x = x \qquad \forall x \in \mathcal{S}$&lt;/li&gt;
&lt;li&gt;For the additive identity of $\mathbb{F}$, which we write as $0$, we have $0x = 0$&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이렇게 벡터 덧셈과 스칼라에 대한 곱셈이 정의될 때, 특정 성질을 만족하면 &quot;Linear&quot; vector space라고 할 수 있다.&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;$\mathcal{S}$&amp;nbsp;is&amp;nbsp;closed&amp;nbsp;under&amp;nbsp;scalar&amp;nbsp;multiplication&amp;nbsp;and&amp;nbsp;vector&amp;nbsp;addition: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\[ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\in&amp;nbsp;\mathcal{S}&amp;nbsp;\;\;\Rightarrow\;\;&amp;nbsp;ax&amp;nbsp;+&amp;nbsp;by&amp;nbsp;\in&amp;nbsp;\mathcal{S},&amp;nbsp;\qquad&amp;nbsp;\forall&amp;nbsp;a,&amp;nbsp;b&amp;nbsp;\in&amp;nbsp;\mathbb{F}. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&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;우리가 $\mathbb{R}^N$을 고려한다면 당연하게 느껴질 수 있지만 항상 두 벡터의 선형 조합이 그 공간에 포함된다는 보장은 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들면, $\mathcal{S}=\{[x,y]:x&amp;gt;0,y&amp;gt;0\} ; \mathbb{F}=\mathbb{R}$와 같이 4사분면 중에 1사분면 공간을 생각하면 그 안에서의 벡터를 실수에 대하여 스칼라 곱해서 더했을 때 1사분면에 속하지 않는 경우가 생긴다. 이런 경우는 linear vector space라고 할 수 없다.&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;i&gt;Vector space 예시&lt;/i&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. $\mathbb{R}^N$, $\mathbb{C}^N$ 실수 벡터 공간이나 복소수 벡터 공간.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Bounded continous function $f(t)$ on the interval $[a,b]$ that are real valued.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bounded continuous 실수 함수들은 함수를 pointwise로 더함으로써 벡터 덧셈을 정의할 수 있고, 스칼라 곱도 pointwise로 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. sequece space : 시퀀스로 정의된 공간이 있다. 스퀀스와 함수가 다른 점은 스퀀스의 값들은 모두 자연수로 인덱싱되어있다는 점이다. 함수는 정의역 set이 있지만 그 정의역에 인덱스가 있는 것은 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$(x_1, x_2,...) +(y_1,y_2,...)$와 같이 시퀀스 공간 안에서 덧셈도 정의될 수 있다. sequence는 실해석학에서 함수와 함께 다뤄지는 중요한 개념.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. Metric space&lt;/b&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;metric space는 벡터 공간에서 어떤 값을 측정하기 위해 metric가 정의될 수 있는 공간을 말한다. 따라서 metric space를 정의하려면 어떤 벡터($\mathcal{S}$)를 가지고 어떤 Metric ($d$)를 정의했는지, 두 개념이 있어야 한다. 즉, 같은 벡터를 다루더라도 metric이 다르다면 다른 metric space인 것이다.&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;i&gt;Definition:&lt;/i&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Let&amp;nbsp;$S$&amp;nbsp;be&amp;nbsp;a&amp;nbsp;set.&amp;nbsp;A&amp;nbsp;function&amp;nbsp;&amp;nbsp; &lt;br /&gt;\[ &lt;br /&gt;d&amp;nbsp;:&amp;nbsp;S&amp;nbsp;\times&amp;nbsp;S&amp;nbsp;\to&amp;nbsp;[0,\infty) &lt;br /&gt;\] &lt;br /&gt;is&amp;nbsp;called&amp;nbsp;a&amp;nbsp;\emph{metric}&amp;nbsp;on&amp;nbsp;$S$&amp;nbsp;if&amp;nbsp;it&amp;nbsp;satisfies:&lt;br /&gt;\[ &lt;br /&gt;\begin{aligned} &lt;br /&gt;\text{(i)}\;&amp;amp;&amp;nbsp;d(x,y)&amp;nbsp;=&amp;nbsp;0&amp;nbsp;\;\text{iff}\;&amp;nbsp;x&amp;nbsp;=&amp;nbsp;y,&amp;nbsp;\\[4pt] &lt;br /&gt;\text{(ii)}\;&amp;amp;&amp;nbsp;d(x,y)&amp;nbsp;=&amp;nbsp;d(y,x)&amp;nbsp;\quad&amp;nbsp;\forall\,&amp;nbsp;x,y&amp;nbsp;\in&amp;nbsp;S,&amp;nbsp;\\[4pt] &lt;br /&gt;\text{(iii)}\;&amp;amp;&amp;nbsp;d(x,z)&amp;nbsp;\le&amp;nbsp;d(x,y)&amp;nbsp;+&amp;nbsp;d(y,z)&amp;nbsp;\quad&amp;nbsp;\forall\,&amp;nbsp;x,y,z&amp;nbsp;\in&amp;nbsp;S. &lt;br /&gt;\end{aligned} &lt;br /&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;다음 성질을 만족하는 $(S,d)$를 a metric space라고 한다.&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;$\textbf{Example.}$ Let $S$ be any set. Define &lt;br /&gt;\[ &lt;br /&gt;d(x,y)&amp;nbsp;= &lt;br /&gt;\begin{cases} &lt;br /&gt;1,&amp;nbsp;&amp;amp;&amp;nbsp;\text{if&amp;nbsp;}&amp;nbsp;x&amp;nbsp;\ne&amp;nbsp;y,\\[4pt] &lt;br /&gt;0,&amp;nbsp;&amp;amp;&amp;nbsp;\text{if&amp;nbsp;}&amp;nbsp;x&amp;nbsp;=&amp;nbsp;y. &lt;br /&gt;\end{cases} &lt;br /&gt;\] &lt;br /&gt;다음과 같은 metric은 discrete metric으로 위의 성질을 만족한다. 우리가 흔히 생각하는 Euclidean distance도 metric이지만 다음과 같이 정의하면 metric space를 정의할 수 있다. 또한 이렇게 metric을 정의하는 이유는 우리가 공간에서 &quot;ball&quot;을 정의하기 위함이다. 이렇게 ball을 정의해야 convergence와 같은 개념들을 또 정의할 수 있다.&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;In&amp;nbsp;a&amp;nbsp;metric&amp;nbsp;space,&amp;nbsp;we&amp;nbsp;define&amp;nbsp;the&amp;nbsp;open&amp;nbsp;ball&amp;nbsp;with&amp;nbsp;center&amp;nbsp;$x$&amp;nbsp;and&amp;nbsp;radius&amp;nbsp;$r$&amp;nbsp;by &lt;br /&gt;\[ &lt;br /&gt;B_r(x)&amp;nbsp;=&amp;nbsp;\{\,&amp;nbsp;y&amp;nbsp;:&amp;nbsp;d(x,y)&amp;nbsp;&amp;lt;&amp;nbsp;r&amp;nbsp;\,\}. &lt;br /&gt;\] &lt;br /&gt;이런 the open ball $B_r$을 정의할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;A set $U$ is open iff it is a (possibly empty) union of open balls.&lt;br /&gt;Equivalently,&amp;nbsp;$U$&amp;nbsp;is&amp;nbsp;open&amp;nbsp;iff&amp;nbsp;for&amp;nbsp;every&amp;nbsp;$x&amp;nbsp;\in&amp;nbsp;U$&amp;nbsp;there&amp;nbsp;exists&amp;nbsp;an&amp;nbsp;$r&amp;nbsp;&amp;gt;&amp;nbsp;0$&amp;nbsp;such&amp;nbsp;that &lt;br /&gt;\[ &lt;br /&gt;B_r(x)&amp;nbsp;\subset&amp;nbsp;U. &lt;br /&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;어떤 set이 open이라고 정의하기 위해서도 open ball 개념이 필요하다. 이런 open, closed, compact 등의 개념은 중요하지만 나중에 다루는 것으로 하자.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. Normed space&lt;/b&gt;&lt;/h2&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;i&gt;Definition:&lt;/i&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Let&amp;nbsp;$E$&amp;nbsp;be&amp;nbsp;a&amp;nbsp;vector&amp;nbsp;space&amp;nbsp;over&amp;nbsp;$\mathbb{F}$.&amp;nbsp;&amp;nbsp; &lt;br /&gt;A&amp;nbsp;function&amp;nbsp; &lt;br /&gt;\[ &lt;br /&gt;\|&amp;nbsp;\cdot&amp;nbsp;\|&amp;nbsp;:&amp;nbsp;E&amp;nbsp;\to&amp;nbsp;[0,\infty) &lt;br /&gt;\] &lt;br /&gt;is&amp;nbsp;called&amp;nbsp;a&amp;nbsp;\emph{norm}&amp;nbsp;if: &lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;\begin{aligned} &lt;br /&gt;\text{(i)}\;&amp;amp;&amp;nbsp;\|x\|&amp;nbsp;=&amp;nbsp;0&amp;nbsp;\;\text{iff}\;&amp;nbsp;x&amp;nbsp;=&amp;nbsp;0,&amp;nbsp;\\[4pt] &lt;br /&gt;\text{(ii)}\;&amp;amp;&amp;nbsp;\|\lambda&amp;nbsp;x\|&amp;nbsp;=&amp;nbsp;|\lambda|\,\|x\|&amp;nbsp;\quad&amp;nbsp;\forall\,&amp;nbsp;\lambda&amp;nbsp;\in&amp;nbsp;\mathbb{F},\;&amp;nbsp;x&amp;nbsp;\in&amp;nbsp;E,&amp;nbsp;\\[4pt] &lt;br /&gt;\text{(iii)}\;&amp;amp;&amp;nbsp;\|x&amp;nbsp;+&amp;nbsp;y\|&amp;nbsp;\le&amp;nbsp;\|x\|&amp;nbsp;+&amp;nbsp;\|y\|&amp;nbsp;\quad&amp;nbsp;\forall\,&amp;nbsp;x,y&amp;nbsp;\in&amp;nbsp;E. &lt;br /&gt;\end{aligned} &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;A vector space with a norm is called a $\emph{normed space}$.&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;정의에 따라 normed space는 vector space와 norm 정의가 같이 있어야한다. normed space는 정의를 보면 알 수 있듯이 metric space의 정의를 만족한다. 따라서 normed space면, metric space라고 할 수 있다. 그러나 metric space의 discrete metric 예시에서 알 수 있듯이 metric space라고 해서 normed space가 될 수 있는 건 아니다.&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;br /&gt;$\textbf{Examples.} $&lt;br /&gt;Let&amp;nbsp;$E&amp;nbsp;=&amp;nbsp;\mathbb{R}^n$&amp;nbsp;or&amp;nbsp;$\mathbb{C}^n$.&amp;nbsp;For&amp;nbsp;$z&amp;nbsp;=&amp;nbsp;(z_1,\ldots,z_n)$,&amp;nbsp;define: &lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;\|z\|_2&amp;nbsp;=&amp;nbsp;\sqrt{|z_1|^2&amp;nbsp;+&amp;nbsp;|z_2|^2&amp;nbsp;+&amp;nbsp;\cdots&amp;nbsp;+&amp;nbsp;|z_n|^2}, &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;\|z\|_1&amp;nbsp;=&amp;nbsp;|z_1|&amp;nbsp;+&amp;nbsp;|z_2|&amp;nbsp;+&amp;nbsp;\cdots&amp;nbsp;+&amp;nbsp;|z_n|, &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;\|z\|_\infty&amp;nbsp;=&amp;nbsp;\max\bigl(|z_1|,\ldots,|z_n|\bigr). &lt;br /&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;우리가 아는 1-norm, 2-norm, $\infty$-norm은 모두 norm의 성질을 만족한다.&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;그리고 Complete Normed space를 Banach space라고 한다. Completeness를 설명하지 않았기 때문에 자세한 설명은 생략&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. Inner product space&lt;/b&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;이제 가장 작은 space에 왔다.&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;i&gt;Definition:&lt;/i&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;An inner product on a (real- or complex-valued) vector space $\mathcal{S}$ is a mapping &lt;br /&gt;\[ &lt;br /&gt;\langle&amp;nbsp;\cdot,\cdot&amp;nbsp;\rangle&amp;nbsp;:&amp;nbsp;\mathcal{S}&amp;nbsp;\times&amp;nbsp;\mathcal{S}&amp;nbsp;\to&amp;nbsp;\mathbb{C} &lt;br /&gt;\] &lt;br /&gt;that&amp;nbsp;obeys:&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;\begin{aligned} &lt;br /&gt;\text{(1)}\quad&amp;nbsp;&amp;amp;&amp;nbsp;\langle&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\rangle&amp;nbsp;=&amp;nbsp;\overline{\langle&amp;nbsp;y,&amp;nbsp;x&amp;nbsp;\rangle},&amp;nbsp;\\[6pt] &lt;br /&gt;\text{(2)}\quad&amp;nbsp;&amp;amp;&amp;nbsp;\langle&amp;nbsp;ax&amp;nbsp;+&amp;nbsp;by,&amp;nbsp;z&amp;nbsp;\rangle&amp;nbsp;=&amp;nbsp; &lt;br /&gt;a&amp;nbsp;\langle&amp;nbsp;x,&amp;nbsp;z&amp;nbsp;\rangle&amp;nbsp;+&amp;nbsp;b&amp;nbsp;\langle&amp;nbsp;y,&amp;nbsp;z&amp;nbsp;\rangle &lt;br /&gt;\qquad&amp;nbsp;\forall\,&amp;nbsp;a,b&amp;nbsp;\in&amp;nbsp;\mathbb{C},&amp;nbsp;\\[6pt] &lt;br /&gt;\text{(3)}\quad&amp;nbsp;&amp;amp;&amp;nbsp;\langle&amp;nbsp;x,&amp;nbsp;x&amp;nbsp;\rangle&amp;nbsp;\ge&amp;nbsp;0&amp;nbsp; &lt;br /&gt;\qquad\text{and}\qquad&amp;nbsp; &lt;br /&gt;\langle&amp;nbsp;x,&amp;nbsp;x&amp;nbsp;\rangle&amp;nbsp;=&amp;nbsp;0&amp;nbsp;\iff&amp;nbsp;x&amp;nbsp;=&amp;nbsp;0. &lt;br /&gt;\end{aligned} &lt;br /&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;다음과 같은 성질을 만족하는 inner product가 정의된 공간을 말한다. inner product 예시는 다음과 같다.&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;$\textbf{Examples.} $&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;$\mathcal{S}&amp;nbsp;=&amp;nbsp;\mathbb{R}^N$, &lt;br /&gt;\[ &lt;br /&gt;\langle&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\rangle&amp;nbsp;=&amp;nbsp;\sum_{n=1}^N&amp;nbsp;x_n&amp;nbsp;y_n&amp;nbsp; &lt;br /&gt;\;=\;&amp;nbsp;y^{\mathsf{T}}&amp;nbsp;x. &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;$\mathcal{S}&amp;nbsp;=&amp;nbsp;\mathbb{C}^N$, &lt;br /&gt;\[ &lt;br /&gt;\langle&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\rangle&amp;nbsp;=&amp;nbsp;\sum_{n=1}^N&amp;nbsp;x_n&amp;nbsp;\overline{y_n} &lt;br /&gt;\;=\;&amp;nbsp;y^{\mathsf{H}}&amp;nbsp;x. &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;$\mathcal{S}&amp;nbsp;=&amp;nbsp;L_2([a,b])$, &lt;br /&gt;\[ &lt;br /&gt;\langle&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\rangle&amp;nbsp; &lt;br /&gt;=&amp;nbsp;\int_a^b&amp;nbsp;x(t)\,\overline{y(t)}\,&amp;nbsp;dt. &lt;br /&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;선형대수를 공부했으면 굳이 normed space과 inner product space를 구별해야하는지 의문이 들 수 있다. 그러나 위의 diagram에서 알 수 있듯이 inner product space면 normed space지만, normed space라고 해서 inner product space인 것은 아니다. inner product는 induced norm을 정의할 수 있게 한다.&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;Frobenius norm 같은 경우에는 norm의 성질을 만족하지만 inner product로 정의할 수 없는 norm이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 norm은 rough하게 말하면 &quot;거리&quot;를 정의할 수 있는 개념이고, inner product는 orthgonality, 또는 &quot;각도&quot;를 정의할 수 있는 개념이다.&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;i&gt;Induced norm:&lt;/i&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A&amp;nbsp;valid&amp;nbsp;inner&amp;nbsp;product&amp;nbsp;induces&amp;nbsp;a&amp;nbsp;valid&amp;nbsp;norm&amp;nbsp;by &lt;br /&gt;\[ &lt;br /&gt;\|x\|&amp;nbsp;=&amp;nbsp;\sqrt{\langle&amp;nbsp;x,&amp;nbsp;x&amp;nbsp;\rangle&amp;nbsp;}. &lt;br /&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;Induced norm은 inner product (스칼라값)에 square root를 씌워서 정의할 수 있다.&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;$\textbf{1. Cauchy--Schwarz Inequality.}$&lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;|\langle&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\rangle|&amp;nbsp;\le&amp;nbsp;\|x\|\,\|y\|. &lt;br /&gt;\]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Equality&amp;nbsp;is&amp;nbsp;achieved&amp;nbsp;exactly&amp;nbsp;when&amp;nbsp;$x$&amp;nbsp;and&amp;nbsp;$y$&amp;nbsp;are&amp;nbsp;\emph{colinear}: &lt;br /&gt;\[ &lt;br /&gt;\exists\,&amp;nbsp;a&amp;nbsp;\in&amp;nbsp;\mathbb{C}&amp;nbsp;\quad&amp;nbsp;\text{s.t.}&amp;nbsp;\quad&amp;nbsp;y&amp;nbsp;=&amp;nbsp;ax. &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;\textbf{2.&amp;nbsp;Pythagorean&amp;nbsp;Theorem.} &lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;\langle&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\rangle&amp;nbsp;=&amp;nbsp;0&amp;nbsp;\;\Rightarrow\;&amp;nbsp;\|x&amp;nbsp;+&amp;nbsp;y\|^2&amp;nbsp;=&amp;nbsp;\|x\|^2&amp;nbsp;+&amp;nbsp;\|y\|^2. &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;This&amp;nbsp;also&amp;nbsp;implies &lt;br /&gt;\[ &lt;br /&gt;\|x&amp;nbsp;-&amp;nbsp;y\|^2&amp;nbsp;=&amp;nbsp;\|x\|^2&amp;nbsp;+&amp;nbsp;\|y\|^2. &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;\textbf{3.&amp;nbsp;Parallelogram&amp;nbsp;Law.} &lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;\|x&amp;nbsp;+&amp;nbsp;y\|^2&amp;nbsp;+&amp;nbsp;\|x&amp;nbsp;-&amp;nbsp;y\|^2&amp;nbsp;=&amp;nbsp;2\|x\|^2&amp;nbsp;+&amp;nbsp;2\|y\|^2. &lt;br /&gt;\] &lt;br /&gt;&lt;br /&gt;You&amp;nbsp;can&amp;nbsp;show&amp;nbsp;this&amp;nbsp;by&amp;nbsp;expanding&amp;nbsp;&amp;nbsp; &lt;br /&gt;\[ &lt;br /&gt;\|x&amp;nbsp;+&amp;nbsp;y\|^2&amp;nbsp;=&amp;nbsp;\langle&amp;nbsp;x&amp;nbsp;+&amp;nbsp;y,\,&amp;nbsp;x&amp;nbsp;+&amp;nbsp;y&amp;nbsp;\rangle &lt;br /&gt;\] &lt;br /&gt;and&amp;nbsp;similarly&amp;nbsp;for&amp;nbsp;$\|x&amp;nbsp;-&amp;nbsp;y\|^2$. &lt;br /&gt;&lt;br /&gt;\textbf{4.&amp;nbsp;Polarization&amp;nbsp;Identity.} &lt;br /&gt;&lt;br /&gt;\[ &lt;br /&gt;\operatorname{Re}\{\langle&amp;nbsp;x,&amp;nbsp;y&amp;nbsp;\rangle\} &lt;br /&gt;=&amp;nbsp;\frac{\|x&amp;nbsp;+&amp;nbsp;y\|^2&amp;nbsp;-&amp;nbsp;\|x&amp;nbsp;-&amp;nbsp;y\|^2}{4}. &lt;br /&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;norm를 통해서 다음과 같은 법칙들도 유도할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cauchy-Schwarz는 두 벡터 사이의 각도가 정의되고 그 값이 1보다 클 수 없음을 알려준다. ($\cos\theta\leq1$)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pythagorean Theorem은 익히 알 듯이 직각삼각형을 떠올리면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Parallelogram law는 평행사변형 법칙을 생각하면 된다.&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;또한 complete inner product space를 Hibert space라고 한다.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&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;Linear algebra에서 다루는 $\mathbb{R}^N$은 이미 Inner product space이기 때문에 벡터 공간이라고 말했지만 우리가 잘 아는 성질들을 편하게 적용할 수 있었다. 그러나 정의 상으로는 이렇다.&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;다음에는 completeness에 대해 좀 더 얘기하려고 한다.&amp;nbsp;&lt;/p&gt;</description>
      <category>수학 Mathematics/실해석학 Real Analysis</category>
      <category>Real analysis</category>
      <author>보통의공대생</author>
      <guid isPermaLink="true">https://normal-engineer.tistory.com/518</guid>
      <comments>https://normal-engineer.tistory.com/518#entry518comment</comments>
      <pubDate>Sat, 22 Nov 2025 02:00:01 +0900</pubDate>
    </item>
  </channel>
</rss>