Basics of Artificial Neural Network and its Applications to Material Forming Process I

인공신경망의 기초와 소성가공에의 응용 I

  • Kim, Y.S. (School of Mechanical Engineering, Kyungpook National University) ;
  • Kim, J.J. (Graduate School of Mechanical Engineering, Kyungpook National University)
  • 김영석 (경북대학교 기계공학부) ;
  • 김진재 (경북대학교 기계공학과)
  • Published : 2021.08.01

Abstract

Keywords

1. 서론

인공신경망(artificial neural network (ANN), 또는 간단히 신경망(neural network, NN)는 인간 뇌의 원리와 정보처리 과정을 모방해서 만든 머신러닝 (machine learning, 기계학습) 알고리즘이며, 딥러닝 (deep learning, 심층학습)의 기본을 이룬다. 이 인공신경망은 1940년대 중반에 임계논리(threshold logic) 라 불리는 알고리즘을 바탕으로 신경망을 위한 수학적 모델이 제안된 이후 최근까지 다양한 분야에서 활발하게 적용되고 있는 알고리즘이다. 이 인공신경망은 최근에 국내 소성가공분야에서 최적 가공조건의 탐색, 파단및 스프링백 불량 원인분석 그리고 고부가가치 신소재의 개발과 재질예측 등에 활발히 적용되고 있다.[1-12] 여기서는 인공신경망의 기본적인 개요와 알고리즘에 대해서 알기 쉽게 설명하여 소성가공 연구와 기술개발에 도움을 주고자 한다.

2. 인공신경망의 개요

Fig. 1 에 인공지능(artificial Intelligence, AI), 머신러닝, 딥러닝, 인공신경망의 범위를 나타내었다. 여기서 인공지능은 인간의 지능이 갖고 있는 기능을 갖춘 컴퓨터 시스템을 뜻하며, 인간의 지능을 기계 등에 인공적으로 구현한 것을 말한다.

SSGGB@_2021_v30n4_201_f0001.png 이미지

Fig. 1 Range of AI, deep learning, and artificial neural network

머신러닝은 인공지능의 한 분야로, 컴퓨터가 데이 터를 학습할 수 있도록 하는 알고리즘과 기술을 개 발하는 분야를 말하고, 딥러닝은 여러 비선형 변환 기법의 조합을 통해 높은 수준의 추상화 (다량의 복 잡한 자료들에서 핵심적인 내용만 추려내는 작업)을 시도하는 다층 인경신경망의 일종이다.

이 딥러닝 기술은 이미지처리(image processing), 객체탐지(object detection), 자연어처리(natural language processing), 강화학습(reinforcement learning), 자동음성 인식(automatic speech recognition), 자율주행차량, 최적 경로 탐색(optimal path search) 등등 다양한 산업 분야에서 최근 널리 사용되고 있으며, 딥러닝으로 훈련된 시스템의 인식 능력은 이미 인간을 앞서고 있다고 알려져 있다.

사람의 뇌는 Fig. 2에서와 같이 엄청나게 많은 뉴런(neuron, 신경세포)들과 외부 자극을 받아들이는 가지돌기(dendrite 또는 수상돌기) 그리고 뉴런들 사이에 자극을 전기적 신호로 전달하는 축삭돌기 (axon)의 신경망 구조(architecture)로 구성되어있다. 사람의 뇌에서는 각기 다른 뉴런들이 활성화되고 그 결과(전기화학적 신호)가 시넵스(synapse 신경 접합부)를 통해 다음 뉴런에 전달하는 방식에 따라 정보를 처리하게 된다.

SSGGB@_2021_v30n4_201_f0002.png 이미지

Fig. 2 Schematic of artificial neural network and its framework

뉴런은 여러 방향으로 뻗어 나와 있는 가지돌기들에서 받아들인 자극(입력신호)들의 크기의 합이 일정 크기 이상의 강도, 즉 임계값을 넘어서면 활성화되고 그렇지 않으면 활성화되지 않는다.

즉, 뇌에 들어온 자극, 신호는 인공신경망에서 입력 값(input)이며 임계값은 가중값(weight), 자극에 의해 어떤 행동을 하는 것은 출력값(output) 에 해당한다.

인간의 뇌에서 회백색을 띠고 있는 대뇌의 표면을 대뇌피질이라고 부르며, 이 대뇌피질에는 약 100 억개의 뉴런이 존재하며, 뉴런 한 개당 약 7, 000 개 정도의 시냅스를 가지고 있는 것으로 추산되고 있다.

이런 인간 뇌의 생물학적 신경망 알고리즘을 모방하여 컴퓨터를 통해 산술, 연산, 학습 및 추론을 할 수 있도록 한 것이 인공신경망이다. 인공신경망에서는 가지돌기들에서 받아들인 자극을 입력으로 간주하고, 가지돌기들의 폭(두께)을 입력과 관련한 가중값으로 간주한다.

인공신경망 이론의 가장 간단한 모델이 Fig. 3과같이 입력층과 출력층으로만 구성되어 있는 단층 퍼셉트론(single-layer perceptron) 구조이다. 여기서 𝑥1, 𝑥2 는 입력값(input)이고 𝑤1, 𝑤2 는 각 입력값에 대한 가중값(weight)이다. 또한 𝑏 는 바이어스(bias 또는 편향)이고, 𝜑 (또는 𝑓 )는 활성화 함수 (activation function)이다. 입력값이 주어지는 위치를 노드(node, 뉴런에 해당)라고 부른다. 따라서 만약 n 개의 입력값이 있다면 입력층은 n 개의 노드를 가진다. 이 활성화 함수는 입력값에 대해서 로지스틱(비선형) 회귀분석 (logistic regression)을 통해 결과를 추론하는 역할을 한다. [13]

SSGGB@_2021_v30n4_201_f0003.png 이미지

Fig. 3 Framework of single-layer perceptron

이 단층 퍼셉트론 이론은 센서 역할을 하는 입력층(input layer)과 반응 역할을 하는 출력층 (output layer)으로 이루어진 구조로 볼 수 있다.

3. 활성화 함수

이 활성화 함수는 가중값이 곱해진 입력값들의 합의 함수로 생물학적 뉴런이 일정 크기 이상의 신호에서만 활성화하도록 해서 의미 없는 데이터는 사전에 필터링하는 역할을 한다.

ANN에서 주로 사용되고 있는 활성화 함수는 시그모이드 함수(sigmoid function), 쌍곡 탄젠트 함수 (hyperbolic tangent function), 레루 함수(retified linear unit, ReLU function), 기울기 렐루 함수(leaky ReLU function). 지수 선형유닛 함수(exponential linear unit function, ELU), 소프트맥스 함수(softmax function) 등의 연속이면서 비선형 함수이다. Fig. 4 에 이들 함수의 형태를 나타내었다.

SSGGB@_2021_v30n4_201_f0004.png 이미지

Fig. 4 Shape of sigmoid, tanh, ReLu, and leaky ReLu function

시그모이드 함수는 입력 신호의 총합을 0에서 1 사이의 값으로 변환해주는 역할을 한다. 또한 입력 신호의 절대값이 커질수록(작아질수록) 함수값이 1또는 0으로 수렴한다. 쌍곡 탄젠트 함수는 시그모이드 함수의 대체제로 사용할 수 있는 활성화 함수이며 입력값의 총합을 -1에서 1사이의 값으로 변환해준다.

한편 렐루 함수는 단순히 입력값을 그대로 출력으로 내보내기 때문에 시그모이드 함수에 비해 계산 속도가 빠르다. 또한 시그모이드 함수나 쌍 곡탄젠트 함수와 같이 도함수(구배)가 소실되는 (killed) 문제가 발생하지 않고, 이들 함수에 비해 은닉층이 원활한 학습이 가능하며 학습속도도 매우 뛰어나기 때문에 널리 사용된다.

한편 기울기 렐루 함수는 렐루 함수을 변형한 형태로 0 이하인 입력에 대해 활성화 함수가 0 만을 출력하지 않고 입력값에 α(=0.01)만큼 곱해 진 값을 출력으로 내보내어 dead ReLU문제(일부 뉴런이 0만을 출력하여 활성화되지 않는 문제)를 해결한다.

각각의 활성화 함수의 구체적인 형태는 다음과 같다.

  • Sigmoid function:

 \(f(u)=\frac{1}{1+e^{-u}}\)       (1)

  • Tanh function:

 \(f(u)=\frac{e^{u}-e^{-u}}{e^{u+e^{-u}}}\)       (2)

  • ReLU function:

𝑓(𝑢)=𝑚𝑎𝑥(0,𝑢)       (3)

  • Leaky ReLU function:

𝑓(𝑢)=𝑚𝑎𝑥(0.01𝑢,𝑢)       (4)

  • Exponential linear unit:

\(f(u)= \begin{cases}\alpha(\exp u-1), & \text { if } \mathrm{u}<0 \\ x, & \text { if } \mathrm{u} \geq 0\end{cases}\)       (5)

시그모이드 함수는 로지스틱 함수의 특별한 경우이다. 이 시그모이드 함수가 인공신경망 해석에서 자주 사용되는 이유는 인공신경망 해석에서 후술하는 구배하강법을 적용하는 과정에서 활성화 함수의 도함수(gradient, 기울기, 구배)를 구해야 하는데 이 시그모이드 함수 𝑓(𝑢) 는 함수 특성상 도함수 𝑓′(𝑢) 가 𝑓(𝑢)∗(1−𝑓(𝑢)) 로 간단히 표현되기 때문이다. 즉,

\(\begin{aligned} \frac{d f(u)}{d u} &=\frac{d}{d u}\left(\frac{1}{1+e^{-u}}\right)=(-1)\left(1+e^{-u}\right)^{-2}(-1) e^{-u} \\ &=\frac{e^{-u}}{\left(1+e^{-u}\right)^{2}}=\frac{e^{-u}+1-1}{\left(1+e^{-u}\right)^{2}}=\frac{1}{1+e^{-u}}-\frac{1}{\left(1+e^{-u}\right)^{2}} \\ &=\left(\frac{1}{1+e^{-u}}\right)\left(1-\frac{1}{1+e^{-u}}\right)=f(u)(1-f(u)) \end{aligned}\)       (6)

이 시그모이드 함수와 도함수에 10, -10, 0 을 대입해보면 함수 형태의 특성을 알 수 있다. 즉,

\(\begin{gathered} f(10) \approx 1, f^{\prime}(10) \approx 0, f(-10)=f^{\prime}(10) \approx 0 \\ f(0)=0.5, f^{\prime}(0)=0.25 \end{gathered}\)

한편 입력층과 출력층 사이에 1개 이상의 복수의 연계층(association layer 또는 은닉층(hidden layer)) 이 존재하는 구조를 다층 퍼셉트론(multi-layer Perceptron)이라고 부른다. 이 퍼셉트론의 개념은 미국의 심리학자 프랭크 로센블래드(Frank Rosenblatt, 1958) 가 제안한 것으로 인공신경망 이론을 설명한 최초의 모델이다. 로센블래드는 이 개념을 인공적인 시각인지 과정을 구현하는데 적용하였다. 한편 심층 신경망(deep neural network, DNN)은 입력층과 출력층 사이에 여러 개의 은닉층들로 이뤄진 다층퍼셉트론의 인공신경망을 말한다. 단층 퍼셉트론은 단층 신경망 모델(single-layer neural network, SLNN), 다층 퍼셉트론은 다층 신경망 모델(multi- layer neural network, MLNN)이라고도 불린다.

4. 손실함수와 역전파 알고리즘

Fig. 5에 n개의 입력 뉴런을 갖고 2개의 뉴런을 갖는 하나의 은닉층과 출력층에서 한 개의 뉴런을 갖는 2 층 퍼셉트론을 나타내었다. 여기서 ∑/𝜑/ℎ 는 그림에 설명한 것과 같이 입력값과 가중 값의 합(Σ) 들을 활성화 함수(𝜑 )에 작용시켜 h 값을 출력하는 것을 나타낸다.

SSGGB@_2021_v30n4_201_f0005.png 이미지

Fig. 5 Framework of two-layers perceptron

다층 퍼셉트론으로 대표되는 인공신경망에서 정보는 입력층에서 시작하여 은닉층을 거쳐 출력층 으로 순차적으로 전달된다. 이렇게 정보가 전방으로 전달되는 것으로부터 인공신경망을 순방향 신경망 (feed-forward neural network) 라고 부른다.

그림의 2층 퍼셉트론에서 정보의 전달은 순방향으로 다음과 같이 순차적으로 이루어진다. 먼저 입력층과 은닉층 사이에서는

\(\begin{gathered} u_{1}=x_{1} w_{11}+x_{2} w_{21}+\cdot=\sum x_{i} w_{i 1}=\left(w_{11} w_{21} \cdot\right)\left\{\begin{array}{l} x_{1} \\ x_{2} \\ \cdot \end{array}\right\} \\ h_{1}=\varphi\left(u_{1}\right) \\ u_{2}=x_{1} w_{12}+x_{2} w_{22}+\cdot=\sum x_{i} w_{i 2}=\left(w_{12} w_{22} \cdot\right)\left\{\begin{array}{c} x_{1} \\ x_{2} \\ . \end{array}\right\} \\ h_{2}=\varphi\left(u_{2}\right) \end{gathered}\)       (7)

또한 은닉층과 출력층 사이에서는

\(\begin{gathered} v=h_{1} w_{n 1}+h_{2} w_{n 2}=\sum y_{i} w_{n i}=\left(w_{n 1}, w_{n 2}\right)\left\{\begin{array}{l} h_{1} \\ h_{2} \end{array}\right\} \\ z=\varphi(v)=0 \end{gathered}\)       (8)

식 (7), (8)은 각각 간단히 다음같이 수행렬 관계로 나타낼 수 있다.

\(\begin{gathered} \left\{\begin{array}{l} u_{1} \\ u_{2} \end{array}\right\}_{2 x 1}=\left[\begin{array}{lll} w_{11} & w_{21} & \cdot \\ w_{12} & w_{22} & \cdot \end{array}\right]_{2 x n}\left\{\begin{array}{l} x_{1} \\ x_{2} \\ . \end{array}\right\}_{1 x n} \rightarrow u^{[1]}=W^{[1]^{T}} x \\ \left\{\begin{array}{l} h_{1} \\ h_{2} \end{array}\right\}=\varphi\left\{\begin{array}{l} u_{1} \\ u_{2} \end{array}\right\} \rightarrow h^{[1]}=\varphi\left(u^{[1]}\right) \end{gathered}\)       (9)

\(\begin{gathered} v=h_{1} w_{n 1}+h_{2} w_{n 2}=\sum y_{i} w_{n i}=W^{[2] T} h^{[1]} \\ z=\varphi(v)=0 \end{gathered}\)       (10)

따라서 최종적으로는 출력은 다음과 같이 나타내진다.

\(\begin{aligned} z=\varphi(v) &=\varphi\left[W^{[2] T} h^{[1]}\right]=\varphi\left[W^{[2] T}\left\{\varphi\left(W^{[1]^{T}} x\right)\right\}\right] \\ &=O \end{aligned}\)       (11)

다양한 문제에서 은닉층의 뉴런수와 은닉층의 개수는 계산 효율과 계산 정밀도 등에 따라 정해진다. 은닉층의 개수가 너무 많으면 계산 효율이 좋지 않고 너무 적으면 해석 정밀도가 좋지 않을 수 있다. 많은 경우에 인공신경망의 구성은 경험과 컴퓨터 실험에 의존하게 되는데, 이 경우에 시간도 많이 소요될 수 있고 그 결과가 전역 최적해에 도달하였는지 확실하지 않다. 따라서 실험계획법(design of experiment, DOE)을 다층 퍼셉트론 신경망에 적용하여 적은 실험 횟수로 적합한 신경망 모델을 구성하는 방법이 제안되어 있다.[15,16]

인공신경망 모델로 가장 간단한 경우에 대한 예로 OR 논리회로(OR logic gate)에 대해서 설명해보자. 아래 표에 나타낸 OR 논리회로에서와 같이 입력 데이터(또는 데이터 세트)들이 주어지고 일부 결과들이 알려진 경우에 인공신경망 알고리즘을 통해서 원하는 결과를 얻기 위해서는 뉴런 사이의 정보를 전달하는 과정에 작용하는 적당한 파라미터값(가중값과 바이어스)을 알아야 한다. 즉 파라미터값의 최적화가 필요하다. 파라미터값을 최적화하여 결과를 추론(inference)하는 과정을 학습(training)이라고 한다. 즉, 이 학습 과정에서는 각 층의 링크가 전달하는 신호를 증폭하거나 감쇠하는 가중값을 조정하여 결과를 향상시키는 역할을 한다.

신경망에서 최적의 파라미터값을 찾기 위한 방법으로 얀 르쿤 ( Yann LeCun), 제프리 힌튼 (Geoffrey Hinton) 등이 개발한 역전파 알고리즘(backpropagation algorithm, BP)이 널리 이용되고 있다. 이 역전파 알고리즘은 구배하강법(gradient descent 또는 경사하강법) 을 연쇄법칙(chain rule)을 사용하여 단순화시킨 것으로 볼 수 있다.[17,18]

일반적으로 인공신경망에서는 초기에 랜덤으로 무작위의 가중값(random weights)을 각 입력에 부여하고 신경망 모델을 순방향으로 적용하여 결과를 예측한 후에 예측된 결과와 실제 결과(목표값)의차이값, 즉, 평균제곱오차(mean squared error, MSE) 가 최소가 되도록 정보전달의 순방향과 반대 방향으로 순차적으로 가중값을 갱신하는 과정을 반복한다. 모든 학습 데이타에 대해서 순방향 계산과정과 역전파 계산과정을 1회 완료시킨 것을 1 에포크( 1 epoch)라고 부른다.

평균제곱오차(이하 간단히 오차)는 다음과 같이 정의된다.

\(E(t, O)=\frac{1}{2}(t-O)^{2} \quad(=L(t, O)): \mathrm{MSE}\)       (12)

t: target output, O: computed output (predicted value)

이 오차는 최적화 문제에서는 자주 손실함수 (loss function 또는 비용함수(cost function)) 𝐿(𝑡, 𝑂) 로 불려지기도 한다.

인공신경망 해석에서 입력값들과 활성화 함수 형태가 정해져 있다면 예측값은 결국 가중값에 따라 결정된다. 따라서 인공신경망 해석은 가중값의 변화에 따른 오차의 변화를 조사하여 평균제곱 오차를 최소로 하는 최적의 가중값을 찾는 문제로 귀착한다. 가중값의 변화에 따른 오차의 변화는 편미분 \(\frac{\partial e}{\partial w}\)(또는 \(\frac{\partial l}{\partial w}\))으로 나타내진다. 윗 식의 우변에서 예측값 𝑂 는 활성화 함수 𝜑(𝑢) 로부터 예측되기 때문에 편미분 \(\frac{\partial e}{\partial w}\)를 구하기 위해서는 연쇄법칙(chain rule)을 적용해야 한다. 즉,

\(\frac{\partial E}{\partial w}\)=\(\frac{\partial E}{\partial O} \frac{\partial O}{\partial w}\)

\(\frac{\partial o}{\partial w}=\frac{\partial o}{\partial u} \frac{\partial u}{\partial w}, \quad O=\varphi(u), u=u(x, w)\)       (13)

\(\therefore \frac{\partial E}{\partial w}=\frac{\partial E}{\partial O} \frac{\partial o}{\partial u} \frac{\partial u}{\partial w}\)

위 식의 우변 각각의 항을 구해보자. 활성화 함수로 시그모이드 함수를 사용하는 경우에 우변 첫 번째 식, 두 번째 식, 세 번째 식은 각각 다음과 같이 나타내진다.

\(\frac{\partial E}{\partial o}=\frac{\partial}{\partial o}\left(\frac{1}{2}(t-O)^{2}\right)=(t-O)(-1)=O-t\)       (14)

\(\frac{\partial o}{\partial u}=\varphi(1-\varphi)\)       (15)

\(\frac{\partial u}{\partial w}=x\)       (16)

따라서,

\(\frac{\partial E}{\partial w_{i}}=\frac{\partial E}{\partial o} \frac{\partial O}{\partial u} \frac{\partial u}{\partial w_{i}}=(O-t) *\{\varphi *(1-\varphi)\} * x_{i}\)       (17)

이 과정을 통해 계산된 가중값의 변화에 따른 오차의 편미분 \(\frac{\partial e}{\partial w}\)을 이용하여 오차가 감소하는 방향, 즉 구배(gradient)의 반대 방향으로 스텝크기 (step size) 𝛥𝑤 (=𝛼∗\(\frac{\partial e}{\partial w}\) )만큼 가중값을 갱신해가는 과정을 반복하여 최적의 가중값을 찾아낸다.

\(w=w-\alpha * \frac{\partial E}{\partial w}\)       (18)

여기서 α (0< α <1)는 학습률(learning rate)이다.

수학적으로 말하면 인공신경망 해석은 입력 x를 출력 z에 매핑할 수 있는 수학 함수 z = f(x)를 찾는 것이다. 이 해석의 정확성은 입력 데이터의 분포와 사용된 신경망의 구조에 따라 결정된다. 입력 데이터 개수가 너무 작은 경우에는 데이터를과평가(over fitting)하는 경우가 있으므로 충분히 많은 데이터를 확보하는 것이 필요하다. 데이터 개수가 작은 경우에는 인공신경망을 적용하기 전에 회귀함수(regression function)를 적용하여 인공신경망 결과와의 비교를 통해서 인공신경망 해석의 효용성을 체크해보는 것을 추천한다.

5. OR 논리회로의 예

다음의 OR 논리회로를 대상으로 인공신경망 모델이 어떻게 구체적으로 작동하는지를 알기 쉽게 설명한다. OR 논리회로는 은닉층을 고려하고 초기의 적당한 가중값을 부여하면 다음과 같이 나타낼 수 있다. 이 인공신경망은 1개의 입력층과 1개의 은닉층으로 구성되어 있으며 입력층에는 2개의 노드, 은닉층에는 2개의 노드를 갖고 있다. 여기서는 바이어스는 고려하지 않는 것으로 하였다.

이 경우에 따라서 신경망 해석에서 결정해야 할 파라미터값은 w1, w2, ., , w6 모두 6개이다. 만일 은닉층에 2개, 출력층에 1개의 바이어스를 가정한다면 파라미터값은 모두 9개가 된다. 이 바이어스를 고려하면 순방향신경망 계산에서 식 (7)과 (8) 은각각 다음과 같이 수정된다.

\(h_{1}=\varphi\left(u_{1}+b_{1}\right), h_{2}=\varphi\left(u_{2}+b_{2}\right), z=\varphi\left(v+b_{3}\right)\),

출력층과 은닉층 사이에서 가중값 𝑤5, 𝑤6 의 변화에 따른 오차의 변화 \(\frac{\partial e}{\partial w_{5}}\),\(\frac{\partial e}{\partial w_{6}}\) 는 다음과 같이 구해진다.

\(\frac{\partial E}{\partial w_{5}}=\frac{\partial E}{\partial O} \frac{\partial O}{\partial v} \frac{\partial v}{\partial w_{5}}=(O-1) * \varphi(v) *(1-\varphi(v)) * h_{1} \\ \begin{aligned} &=(0.7310-1) * 0.7316 *(1-0.7361) * 0.5986 \\ &=-0.03161 \end{aligned}\)

\(\because\left\{\begin{array}{l} O=\varphi(v)=O\left(h_{1} w_{5}+h_{2} w_{6}\right)=\varphi(1.00006)=0.7310 \\ h_{1}=\varphi\left(x_{1} w_{1}+x_{2} w_{2}\right)=\varphi(0.4)=0.5986 \\ h_{2}=\varphi\left(x_{1} w_{3}+x_{2} w_{4}\right)=\varphi(0.6)=0.6456 \end{array}\right.\)

마찬가지로 \(\frac{\partial E}{\partial w_{6}}=-0.0375\)

따라서 학습률은 0.05로 한 경우에 가중값 𝑤5, 𝑤6 은 다음과 같이 갱신된다.

\(\begin{aligned} w_{5}=w_{5}-\alpha * \frac{\partial E}{\partial w_{5}} &=0.7-0.05 *(-0.03161) \\ &=0.7015 \end{aligned}\)

\(\begin{aligned} w_{6}=w_{6}-\alpha * \frac{\partial E}{\partial w_{6}} &=0.9-0.05 *(-0.0375) \\ &=0.9018 \end{aligned}\)

SSGGB@_2021_v30n4_201_f0006.png 이미지

Fig. 6 Framework of multi-layer perceptron with different weight values

한편 이 문제에서 은닉층과 입력층 사이에서 가중값 𝑤1의 변화에 따른 오차의 변화는 다음과 같이 나타내 진다.

\(\frac{\partial E}{\partial w_{1}}=\frac{\partial E}{\partial h_{1}} \frac{\partial h_{1}}{\partial w_{1}}\)

여기서 \(\frac{\partial e}{\partial h_{1}}\)은 다음과 같이 나타낼 수 있다.

\(\frac{\partial E}{\partial h_{1}}=\frac{\partial E}{\partial O} \frac{\partial O}{\partial h_{1}}=\frac{\partial E}{\partial o} \frac{\partial o}{\partial v} \frac{\partial v}{\partial h_{1}}\)

따라서 식 (12)의 평균제곱오차를 손실함수로 사용하면𝑣 = ℎ1𝑤5 +ℎ2𝑤6 , 𝑂 = 𝜑(𝑣) = 𝜑(ℎ1𝑤5 + ℎ2𝑤6)

\(\frac{\partial E}{\partial o}=O-t\)

한편 𝑣 = ℎ1𝑤5 +ℎ2𝑤6 , 𝑂 = 𝜑(𝑣) = 𝜑(ℎ1𝑤5 + ℎ2𝑤6) 이므로 시그모이드 활성화 함수를 사용하는 경우에

\(\frac{\partial O}{\partial h_{1}}=\frac{\partial O}{\partial v} \frac{\partial v}{\partial h_{1}}=\frac{\partial O}{\partial v} * w_{5}=\{\varphi(v) *(1-\varphi(v))\} * w_{5}\)

또한 𝑢1 = 𝑥1𝑤1 + 𝑥2𝑤2 이므로

\(\frac{\partial h_{1}}{\partial w_{1}}=\frac{\partial h_{1}}{\partial u_{1}} \frac{\partial u_{1}}{\partial w_{1}}=\frac{\partial h_{1}}{\partial u_{1}} * x_{1}=\left\{\varphi\left(u_{1}\right) *\left(1-\varphi\left(u_{1}\right)\right)\right\} * x_{1}\)

따라서 가중값 𝑤1의 변화에 따른 오차 𝑂 의 변화는 다음과 같이 나타내진다.

\(\frac{\partial E}{\partial w_{1}}=\frac{\partial E}{\partial h_{1}} \frac{\partial h_{1}}{\partial w_{1}}=\left\{\frac{\partial E}{\partial o} \frac{\partial o}{\partial v} \frac{\partial v}{\partial h_{1}}\right\}\left\{\frac{\partial h_{1}}{\partial u_{1}} \frac{\partial u_{1}}{\partial w_{1}}\right\}\)

\(\begin{aligned} =\{(O-t)&\left.* \varphi(v) *(1-\varphi(v)) * w_{5}\right\} \\ & *\left\{\varphi\left(u_{1}\right) *\left(1-\varphi\left(u_{1}\right)\right) * x_{1}\right\} \end{aligned}\)

구체적인 값들을 구해보자.

\(\begin{aligned} h_{1} &=\varphi\left(x_{1} w_{1}+x_{2} w_{2}\right)=\varphi(0 * 0.1+1 * 0.4) \\ &=\frac{1}{1+e^{-0.4}}=0.5986 \\ h_{2} &=\varphi\left(x_{1} w_{3}+x_{2} w_{4}\right)=\varphi(0 * 0.3+1 * 0.6) \\ &=\frac{1}{1+e^{-0.6}}=0.6456 \end{aligned}\)

출력은 1.0이므로

\(\begin{aligned} &v=h_{1} w_{5}+h_{2} w_{6}=0.5986 * 0.7+0.6456 * 0.9 \\ &\quad=1.0006 \\ &\qquad \begin{aligned} O &=\varphi(v)=\varphi(1.0006)=\frac{1}{1+e^{-1.0006}}=0.7310 \end{aligned} \end{aligned}\)

따라서,

\(\begin{aligned} \frac{\partial E}{\partial o}=& 0-t=0.7310-1=-0.269 \\ \quad \frac{\partial o}{\partial h_{1}} &=\varphi(v) *\{1-\varphi(v)\} * w_{5} \\ &=\varphi(1.0006) *\{1-\varphi(1.0006)\} * 0.7 \\ &=0.7310 *(1-0.7310) * 0.7 \approx 0.137 \end{aligned}\)

또한 \(u=x_{1} w_{1}+x_{2} w_{2}=0 * 0.1+1 * 0.4=0.4\)

\(\begin{aligned} \frac{\partial h_{1}}{\partial w_{1}} &=\{\varphi(u) *(1-\varphi(u))\} * x_{1} \\ &=\{\varphi(0.4) *(1-\varphi(0.4))\} * 0=0 \end{aligned}\)

그러므로,

\(\frac{\partial E}{\partial w_{1}}=\frac{\partial E}{\partial O} \frac{\partial o}{\partial h_{1}} \frac{\partial h_{1}}{\partial w_{1}}=-0.269 * 0.137 * 0=0\)

따라서 학습률을 0.05로 한 경우에 가중값 𝑤1은다음과 같이 갱신된다.

\(w_{1}=w_{1}-\alpha * \frac{\partial E}{\partial w_{1}}=0.1-0.05 * 0=0.1\)

마찬가지로 방법으로 \(\frac{\partial e}{\partial w_{2}}\)과 𝑤2, \(\frac{\partial e}{\partial w_{3}}\), 𝑤3 등 모든 파라미터값을 구할 수 있다. 이들 파라미터값 들을 순방향으로 적용해 가면 예측된 결과를 얻을 수 있다. 이 예측된 결과와 목표값의 평균제곱 오차가 매우 작아질 때까지 이 과정을 반복하면 최적의 가중값을 찾을 수 있다. 결국 인공 신경망의 최적화 알고리즘은 손실함수를 정의하고 구배 하강법을 적용하여 반복적인 학습을 통해서 결과를 잘 나타내는 파라미터값을 찾는 방법이라는 것을 알 수 있다.

이 예제에서는 가중값의 초기값을 𝑤1, 𝑤2, 𝑤3, ⋅⋅= 0.1, 0.4, 0.3, ⋅⋅ 으로 부여하였다. 신경망 학습에서는 학습시킬 때의 가중값의 초기값을 어떤 값으로 하는가가 중요하다. 왜냐하면 가중값의 초기값을 어떻게 취하느냐에 따라 학습이 잘 될 때가 있고 잘 안 될 때가 있기 때문이다. 일반적으로 가중값의초기값을 가능한 작게 잡아야 하며 입력값들에 대해서 동일한 초기값을 갖지 않도록 랜덤하게 초기화해야 한다. 이때 가중값 초기값은 평균이 0이고 표준편차가 0.01 인 정규분포(가우시안 분포)를 따르는 값으로 랜덤하게 초기화하는 것을 추천한다.

시그모이드 활성화 함수가 인공신경망 해석에서 자주 사용되지만 이 함수는 다음과 같은 단점을 가지고 있다. 즉, 입력 신호의 절대값이 커질수록 (작아질수록) 함수값이 1 또는 0 으로 수렴하지만 뉴런의 도함수는 0 으로 소실된다. 따라서 역 전파과정에서 0이 곱해지기 때문에 역전파가 진행됨에 따라 아래 층(layer)에는 아무 정보도 전달되지 않는 문제가 있다. 또한 시그모이드 함수는 원점 중심이 아니기(not zero-centered) 때문에 항상 양수를 출력하므로 출력의 가중치 합이 입력의 가중치 합보다 커질 가능성이 높다. 이것을 편향 이동(bias shift)이라 한다. 따라서 순방향 계산에서 각 층을 지날 때마다 분산이 계속 커져서 가장 높은 층에서는 활성화 함수의 출력이 0 이나 1 로 수렴하게 되어 도함수 소실 문제가 일어나게 된다.

많은 인공신경망 교재에서 활성화 함수로는 가능한 ReLU를 먼저 사용하고, 그다음으로 LeakyReLU 나 ELU 같은 ReLU Family를 쓰며, 가능한 시그모이드 함수는 사용하지 않는 것이 좋다고 제안하고 있다.

입력층의 뉴런과 은닉층이 많은 일반적인 인공 신경 망 모델을 풀기 위해서는 Python 언어로 쓰여진 전용 프로그램 또는 Matlab 프로그램을 이용하는 것이 일반적이다.

파이썬(Python)[19]은 1991년 프로그래머인 귀도 반 로섬(Guido van Rossum)이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리 터식, 객체지향적, 동적 타이핑 대화형 언어이다. 파이썬은 문법이 매우 쉬워서 초보자들이 처음 프로그래밍을 배울 때 추천되는 언어로 타 프로그래밍 언어와 비교하면 접근성과 응용력이 좋다고 알려져 있다.

과학적 프로그래밍에 사용되는 기본 연산에는 배열, 행렬, 적분, 미분방정식 연산, 통계 등이 있다. 파이썬은 행렬이나 배열이 아닌 일반적 변수에 대한 기초적 수학 연산을 제공하지만 기본적인 과학계산 기능은 내장되어 있지 않다. 따라서 사이파이(SciPy)[20], 넘파이(NumPy)[21]와 심파이 (SymPy)[22]와 같이 과학계산을 효율적으로 수행할 수 있는 패키지들을 제공한다.

한편 딥 러닝과 같은 인공지능 기법들을 쉽게 구현할 수 있게 도와주도록 개발된 딥러닝 프레임워크로는 텐서플로우(Tensorflow)[23], 파이 토치(pytorch) [24], 카페(caffe)[25], 시아노(theano) 등이 있다. 이들은 대부분 파이썬과 C/C++을 지원한다.

AI를 전문으로 하는 사람들은 이들 소프트웨어를 사용하는 것을 추천하지만 간단한 공학 문제를 풀려고 하는 학생들은 구글 크라우드 상에서 운영하는 프리웨어 소프트웨어 https://colab.research. google.com/ 를 이용하길 추천한다.

4. 결론

본 해설에서는 최근 다양한 산업분야와 소성가공 분야에서 활발이 사용되고 있는 인공신경망의 기본적인 개요와 알고리즘에 대해서 설명하였다. 또한 간단한 OR 논리회로를 대상으로 한 인공신경망 모델에서 매개변수 값이 역전파 과정을 통해 어떻게 갱신되어가는 지를 알기 쉽게 설명하였다.

다음 호에서는 소성가공문제에 구체적인 적용예와 파이썬 프로그램을 설명한다.

후기

이 논문은 2021 대한민국 교육부와 한국연구재 단의 지원을 받아 수행된 연구임(NRF-2019R1A2C1011224).

References

  1. D. H. Kim, D. J. Kim, B. M. Kim, J. C. Choi, 1997, Process Design of Multi-Step Drawing using Artificial Neural Network, Conf. on Trans. Mater. Process, pp. 144-147
  2. A. J. Hong, K. D. Cheol, L. C. Joo, B. M. Kim, 2008, Springback Compensation of Sheet Metal Bending Process Based on DOE & ANN, Trans. Kor. Soc. Mech. Eng., Vol. 32, No. 11, pp. 990~996. https://doi.org/10.3795/KSME-A.2008.32.11.990
  3. S. K. Lee, S. M. Kim, S. B. Lee, B. M. Kim, 2010, Optimization of Process Variables of Shape Drawing for Steering Spline Shaft, Trans. Mater. Process, Vol. 19, No. 2, pp. 132-137. https://doi.org/10.5228/KSPP.2010.19.2.132
  4. D. T. Nguyen, Y. S. Kim, D. W. Jung, Formability Predictions of Deep Drawing Process for Aluminum Alloy A1100-O Sheets by Using Combination FEM with ANN, 2012, Advanced Mat. Research, Vol. 472, pp. 781~786. https://doi.org/10.4028/www.scientific.net/AMR.472-475.781
  5. J. I. Choi, J. M. Lee, S. H. Baek, B. M. Kim, D. H. Kim, 2015, The Shoe Mold Design for Korea Standard Using Artificial Neural Network, Trans. Mater. Process, Vol. 24, No. 3, pp. 167-175. https://doi.org/10.5228/KSTP.24.3.167
  6. V. C. Do, Y. S. Kim, Effect of Hole Lancing on the Forming Characteristic of Single Point Incremental Forming, 2017, Proc. Eng., Vol. 184, pp. 35~42. https://doi.org/10.1016/j.proeng.2017.04.068
  7. M. A. Woo, S. M. Lee, K. H. Lee, W. J. Song, J. Kim, 2018, Application of an Artificial Neural Network Model to Obtain Constitutive Equation Parameters of Materials in High Speed Forming Process, Trans. Mater. Process, Vol. 27, No. 6, pp. 331-338. https://doi.org/10.5228/KSTP.2018.27.6.331
  8. S. C. Ma, E. P. Kwon, S. D. Moon, Y. Choi, 2020, Prediction of Springback after V-Bending of High-Strength Steel Sheets Using Artificial Neural Networks, Trans. Mater. Process, Vol. 29, No. 6, pp. 338~346. https://doi.org/10.5228/KSTP.2020.29.6.338
  9. D. C. Yang, J. H. Lee, K. H. Yoon, J. S. Kim, 2020, A Study on the Prediction of Optimized Injection Molding Condition using Artificial Neural Network (ANN), Trans. Mater. Process, Vol. 29, No. 4, pp. 218-228. https://doi.org/10.5228/KSTP.2020.29.4.218
  10. M. J. Kwak, J. W. Park, K. T. Park, B. S. Kang, 2020, A Development of Optimal Design Model for Initial Blank Shape Using Artificial Neural Network in Rectangular Case Forming with Large Aspect Ratio, Trans. Mater. Process, Vol. 29, No. 5, pp. 272-281. https://doi.org/10.5228/KSTP.2020.29.5.272
  11. M. J. Kwak, J. W. Park, K. T. Park, B. S. Kang., 2020, A Development of Longitudinal and Transverse Springback Prediction Model Using Artificial Neural Network in Multipoint Dieless Forming of Advanced High Strength Steel, Trans. Mater. Process, Vol. 29, No. 2, pp. 76-88. https://doi.org/10.5228/KSTP.2020.29.2.76
  12. S. H. Oh, X. Xiao, Y. S. Kim, 2021, Modeling of AA5052 Sheet Incremental Sheet Forming Process Using RSM-BPNN and Multi-optimization Using Genetic Algorithms, Trans. Mater. Process, Vol. 30, No. 3, pp. 125-133. https://doi.org/10.5228/KSTP.2021.30.3.125
  13. H. B. Demuth, M. H. Beale, O. De Jess, & M. T. Hagan, 2014, Neural network design (2nd Edition. Martin Hagan.
  14. https://cs230.stanford.edu/files/C1M3.pdf
  15. S. H. Lee, D. C. Kang, C. Lee, M. J. Kang, Structural Design of Artificial Neural Network using DOE, 1996, Proc. of spring Conf. on Korean Soc. Prec. Eng., pp. 536~540.
  16. F. Rosenblatt, A probabilistic model for information storage and organization in the brain, 2000, Psychological Review, Vol. 65, No. 3, pp. 383~408.
  17. M.Hassoun, Fundamentals of artificial networks, 1995, MIT press
  18. Ian J. Goodfellow, Yoshua Bengio and Aaron Couville, Deep learning, 2015, MIT Press
  19. https://www.python.org/
  20. www.scipy.org
  21. www.numpy.org
  22. www.sympy.org
  23. https://www.tensorflow.org
  24. https://pytorch.org
  25. https:// caffe.berkeleyvision.org/