논문용 그래프 제도를 검토한 건

개요



최근 석사논문을 쓰고 있어 Activation function(Sigmoid 등)의 설명에는 그래프로 설명한 편이 좀 더 알기 쉽기 때문에 그림을 쓰려고 했지만 벽에 충돌했다.
거기서 해결책을 모색중에 만난 것을 소개. 우선 환경은 다음과 같습니다.

환경


  • Win10
  • Word2016

  • 결론부



    Answer first



    먼저 결론을 말하면 Microsoft Mathematics(약:MSMath), OneNote(Microsoft), Python의 Matplotlib, Latex라는 4가지 방법을 발견했지만 각각의 개성이 있다.

    사용의 용이성: OneNote ≒ MSMath > Matplotlib > Latex
    난이도: Latex >> Matplotlib > MSMath ≒ OneNote (사용의 용이성과 반대)
    사용자 정의 가능성: Latex > Matplotlib >> MSMath ≒ OneNote ≒ 0
    깨끗함: Latex >> Matplotlib > OneNote > MSMath

    이제 하나의 예로 그림을 설명합시다.
    Neural Networks의 Activation function으로 잘 알려진 Sigmoid 함수의 그림을 만들어 보자.

    Method 1 : Microsoft Mathematics





    메인 화면은 그림과 같이 4개의 부분으로 나뉘며,
    1. 조정부(그래프의 표시 구간, 테두리가 있는지, 출력)
    2. 특집한 문자나 부호를 넣는 곳?
    3. 표시할 equation을 입력하는 곳 등
    4. 표시 부분

    감상으로서는, 부족점은 グラフ線の色のカスタマイズ , 表示区間の設定
    다운로드는 여기

    Method 2: OneNote



    OneNote로 그래프를 작성하는 경우, 먼저 수식을 만들어(1), 툴의 수학을 선택해(2), 2D그래프를 작성해(3), 노트에 삽입한다(4)라고 느낍니다. 각각의 위치 등은 도면에 참조.
    거기까지 복잡하지는 않지만, 역시 그래프의 커스터마이즈 할 수 있는 부분이 적다고 하는 느낌이 있습니다.



    방법 3: Matplotlib



    프로그래밍을 사용함으로써, 여기에서 드디어 자유롭게 커스터마이즈할 수 있게 되었다.
    import math
    import numpy as np 
    import matplotlib.pyplot as plt 
    
    x = np.linspace(-5, 5, 100) 
    pow_ex = pow(e,x)
    y = pow_ex/(pow_ex+1) 
    
    plt.plot(x, y, color = 'red') 
    plt.title("Sigmoid function") 
    plt.xlabel("The label of x") 
    plt.ylabel("The label of y") 
    plt.show() 
    

    위의 코드의 결과는 다음 그래프입니다.


    이 중 대부분이 조정 가능하기 때문에, 구체적인 방법은 공식 사이트는 나보다 상세하므로, 그쪽을 참조해 주실 수 있습니다. → Examples using matplotlib.pyplot.plot

    Method 3: Latex



    우선 코드는 다음과 같습니다.
    \documentclass{article}
    
    \usepackage{pgfplots}
    \pgfplotsset{width=10cm, compat=1.16}
    
    \begin{document}
    \begin{tikzpicture}
    \begin{axis}[
        axis lines = center,
        xmin = -5, xmax=5,
        ymin=-1.5, ymax=1.5,
        xlabel = $x$,
        ylabel = {$y=sigmoid(x)$},
    ]
    
    \addplot [
        domain=-5:5,
        samples=100,
        color=black,
    ]
    {e^x/(e^(x)+1)};
    
    \end{axis}
    \end{tikzpicture}
    \end{document}
    

    이것을 Overleaf 이라는 Online Latex 웹 서비스에 Compile 하면 다음 그림이 나왔습니다.



    Latex의 여러가지 사용법도 있지만, 넷에서 많이 정보가 있기 때문에, 몇개인가를 실립니다.
    - Learn latex in 30 mins
    - 30분도 필요없는 LaTeX 입문

    latex로 만든 그림의 스타일은 비교적 자신의 취향으로, 단지 코드를 조정하는데 디버그는 너무 힘든 단점도 있다.

    끝에



    사용자 정의 할 수없는 것이 다소 불편하다고 생각하기 때문에 Latex와 Matplotlib로 가기로 결정했습니다.

    ※ 겨우 이번 건을 기록했기 때문에 머리라는 메모리에서 공간을 릴리스 할 수 있었다. 깔끔한 것으로 석사논문 계속한다.

    좋은 웹페이지 즐겨찾기