제 4 절 신경망 알고리즘 기반 불량 검출
이상적인 불량검출 알고리즘은 빛의 양과 방향, 제품 표면의 배경 노 이즈, 얼룩의 패턴 등 다양한 요소가 달라져도 전체적인 이미지에서 이 질적인 얼룩을 찾아낼 수 있어야한다.
- 26 -
는 곱해지는 계수이고 는 입력, 는 바이어스 값을 뜻하고 마지 막으로 는 활성화 함수라고 하여 출력 값을 활성 또는 비활성화 하는 역할을 한다. 보통 활성화 함수로는 시그모이드 (sigmoid) 함수가 가장 많이 사용된다. 시그모이드 함수는 로지스틱 함수와 같은 형태를 지니며 따라서 입력 값을 0부터 1사이의 확률 값으로 나타내주는 역할을 한다.
최근에는 0 이하의 값만 0으로 만들고 나머지는 그대로 통과시키는 정류 된 선형 유닛 함수 (rectified linear unit)가 학습 시킬 때 특성이 좋아 많이 사용된다. 본 논문에서도 위 두 개의 활성함수를 이용해 신경망 네 트워크를 구성하였다.
[그림 2-14] 시그모이드 함수와 정류된 선형 유닛 함수 모델
이러한 퍼셉트론을 병렬로 묶어 하나의 뉴런 층을 구성하고 여러 층 을 쌓아 연결하면 다양한 형태의 인공신경망이 된다. 본 논문에서는 입 력과 출력이 한 방향으로만 연결되어 있는 다층전방향신경망(deep feedforward neural network)과 영상 인식 분야에서 많이 사용되는 합성 곱 신경망(convolutional neural network)을 이용해 얼룩을 검출한다.
신경망을 학습시키는 방법은 크게 비 감독학습과 감독학습이 존재한 다. 비 감독학습은 입력 데이터에서 스스로 특징을 추출해 학습하는 것
이고 감독학습에는 입력 값과 목표 값이 둘 다 필요하다. 비 감독학습의 대표적인 예로 RBM (resitrict Boltzman machine)구조의 사전학습이 있 다 [10].
본 논문에서 사용하는 학습 방법은 감독학습으로 목표 값이 주어진 경우나 목표 값을 예측 가능할 때 주로 사용된다. 일반적인 감독 학습의 과정은 다음과 같다.
단계 1. 신경망에 입력 값을 넣고 각 층의 연산을 수행하여 최종 출력 값을 구한다.
(13)
(14)
(15)
i는 몇 번째 층인지를 나타내는 변수이고 j는 층 내에서 몇 번째 퍼셉 트론인가를 나타내는 변수이다. 가중치 변수 의 경우 이전 층의 k번 째 퍼셉트론에서 i 번째 층의 j번째 퍼셉트론으로 연결되는 가중치를 뜻 한다. 즉, 는 i 번째 층에서 j 번째 퍼셉트론의 입력에 대한 내적 값이 고 식 (z2)에서 활성화 함수 f를 거친 후 i 번째 층의 출력 값을 구할 수 있다. 마지막 층인 출력 층은 소프트맥스 함수를 적용하여 각 목표 값에 대한 확률이 출력될 수 있도록 구성한다. 분류기로 신경망을 구성할 때 출력 층에 소프트맥스가 많이 사용된다.
단계 2. 미리 구해진 목표 값과 출력 값을 비교하여 오차 값을 계산하 고 오류 역전파 알고리즘(back propagation algorithm)을 적용한다 [11].
오류 역전파 알고리즘은 출력 층에서 구해진 오차 값을 이용해 신경
- 28 - 용된다.
′ (16)
다음 층의 오차 값을 가중치를 곱해 더하여 전파되는 오차 값을 구한 다. 가중치는 보통 1보다 작은 값을 가지기 때문에 여러 번 전파를 반복 하다보면 오차 값이 거의 전파되지 않는 문제가 발생할 수도 있다.
단계 3. 경사 하강법을 이용해 가중치를 업데이트한다.
(17)
역전파로 구해진 오차 값을 경사 하강법에 적용하면 새로운 가중치를 구할 수 있다. 는 학습 비율 (learning rate)을 뜻하는 변수이다. 는 에러 함수 E를 로 미분한 값이므로 값을 역전파로 구하면
값 을 체인룰로 구할 수 있다.