본문 바로가기

카테고리 없음

MFD로 Mix-type Wafer Map Defect Pattern 분류하기 (논문 리뷰)

안녕하세요. 톡발이입니다.

 

그동안은 저희가 단일 유형의 결함 패턴에 대해서만 여러 가지 방법으로 분류를 해봤었는데요. 오늘 리뷰할 논문 " Mixed-Type Wafer Defect Pattern Recognition Framework Based on Multifaceted Dynamic Convolution "에서는 Convolution을 기반으로 해서 다양한 유형의 결함 패턴들이 섞여있는 mixed-type DPR (Defect Pattern Recognition) 대해서 분류하는 방법을 소개하고 있습니다.

Introduction

제조 과정은 수백 개의 처리 단계를 거치기 때문에, wafer의 각 층에서 서로 다른 결함이 발생할 수 있습니다. 이러한 다양한 결함들이 함께 나타나면서 mixed-type 결함이 생성되는데요. 현재의 반도체 제조에서는 mixed-type 결함이 더 자주 발생하는 경향이 있습니다.

일반적으로 mixed-type 결함들을 분류할 때는 다음과 같은 문제점들이 있습니다.

  • 같은 유형의 mixed-type 결함이 서로 다른 분포를 가질 수 있습니다.

같은 유형의 결함( donut, local, scratch )이 서로 다른 위치와 각도를 가질 수 있다.

  • Mixed-type 결함들은 일반적으로 이미지 전체에 흩어져 있으며, 이로 인해 관련된 정보들의 의존성을 모델링하기가 더 어려워집니다.

Wafer map을 분류할 때 대부분은 CNN을 사용했습니다. 하지만 CNN을 사용하면 mixed-type 결함들을 분류할 시 몇 가지 2가지 문제점들이 있습니다.

  • 일반적인 CNN은 보통 고정된 크기의 kernel을 사용하여 정보를 통합하고, 단순히 더 많은 layer를 추가하여 인식(perception)의 범위를 증가시킵니다. 이러한 대략적인 방법은 CNN이 더 넓은 시야에서 정보를 얻는 것을 어렵게 만들 수 있습니다.
  • 일반적인 CNN은 보통 channel 수를 증가시킴으로써 더 많은 정보를 얻습니다. 그러나 이렇게 되면 channel 간에 적절하지 않은 정보가 포함될 수 있으며, channel별로 얻은 정보도 정밀하지 않고 결합되어야 합니다.

위와 같은 문제들은 저자들에게 dynamicity을 부여하여 CNN의 adaptive feature 학습 능력을 향상하는 데에 영감을 주었습니다. 저자들은 특히 pixelwise와 channelwise의 정보에 초점을 맞추고 있습니다.

자세한 설명은 밑에서 다루도록 하겠습니다.

Wafer Maps of Mixed-Type Defects

Dataset

반도체 제조에 대한 요구사항이 높아짐에 따라 제조 과정은 점점 복잡해지며 종종 수백 개의 다른 공정이 수행됩니다. 이로 인해 하나의 wafer에 여러 가지 유형의 불량이 발생할 수 있으며, 이는 혼합 유형의 불량을 야기하죠. 이전 연구들에서 mixed-type DPR에 대해 언급된 논문들에서는 포함된 불량 유형이 제한적이었다고 합니다. 하지만, 산업용 반도체 제조에서의 관찰에 따르면 불량의 종류는 30가지 이상일 수 있습니다. 따라서 이 논문에서는 위 그림에 나와있는 것처럼 총 38가지 불량 패턴을 조사했습니다.

 

이 중에서 8가지 단일 유형 불량, 29가지 혼합 유형 불량, 그리고 정상 유형(C1)을 포함합니다. 혼합 유형 불량은 다음과 같이 구성되어 있습니다.

13가지 2개의 혼합 유형 불량 (C10–C22), 12가지 3개의 혼합 유형 불량 (C23–C34), 그리고 4가지 4개의 혼합 유형 불량 (C35–C38).

 

이 연구에서 검사 된 단일 유형의 불량은 다음과 같은 여덟 가지 불량을 포함합니다.

"center", "donut", "edge-local", "edge-ring", "local", "near-full", "scratch", "random".

 

Dataset은 총 38,015개의 wafer map으로 구성되어 있으며, 각 wafer map은 52 ×52 개의 die로 이루어져 있습니다. Wafer map의 각 픽셀(다이의 위치)은 0, 1, 2 중 하나의 값을 가지며, 각각의 의미는 다음과 같습니다.

  • 0: 해당 픽셀에는 die가 없음 (그림에서 검은 부분에 해당)
  • 1: 해당 die는 합격 (그림에서 회색 부분에 해당)
  • 2: 해당 die는 불합격 (그림에서 흰 부분에 해당)

Methodology

Revisiting Vanilla Convolution

Convolution

먼저 기본적인 concolution을 살펴봅시다.

 

기본적인 convolution은 입력 이미지 위에서 convolution kernel을 슬라이딩하면서 각 요소별 곱셈을 수행합니다. 이는 입력 데이터로부터 유용한 정보를 생성하는 데 도움이 되죠. 기본적인 convolution의 계산 과정은 위 그림 a에 나와 있습니다.

 

Convolution에서는 convolution kernel이 입력 이미지 위에서 슬라이딩하면서 feature map을 생성합니다. 그림 b에서 볼 수 있듯이, 각각의 kernel에는 학습 가능한 가중치들이 있으며, 이들을 사용하여 요소별 곱셈을 수행합니다. 그 결과들을 모두 더한 후 출력 유닛으로 배치하고, 다시 입력 유닛의 원래 위치에 따라 정리하여 feature map을 생성합니다. 구체적으로 설명하자면, convolution kernel의 크기가 F × F라고 가정하면, convolution은 다음과 같이 설명될 수 있습니다.

$$ \delta_{ij} = \sum\limits_{m=1}^F\sum\limits_{n=1}^F\omega_{mn}p_{[m+(i-1)\times S][n+(j-1)\times S]}+b $$

$$ 1\leq i \leq \frac{H-F}{S},\ 1\leq j \leq \frac{W-F}{S} $$

 

$\delta_{ij}$는 좌표 $(i, j)$에 있는 feature map의 output unit을 나타냅니다. $p_{[m+(i-1)\times S][n+(j-1)\times S]}$는 좌표 $([m+(i-1)\times S][n+(j-1)\times S])$에 있는 input unit입니다. $\omega_{mn}$은 convolution kernel의 $(m, n)$ 위치에 있는 가중치이고 $b$는 convolution 연산에 대한 편향, S는 stride입니다. 주목할 점은 하나의 convolution 과정에서 여러 개의 convolution kernel이 존재할 수 있으며, 각각의 kernel은 개별적인 convolution을 수행하고 feature map을 생성한다는 것입니다.

 

Vanilla convolution에서, convolution kernel은 입력 데이터의 작은 근처(neighborhood) unit들을 포함합니다. 이 작은 local receptive field를 통해 입력 데이터로부터 기본적인 feature들을 추출할 수 있습니다. 또한, convolution layer에서 사용되는 서로 다른 kernel들은 개별적으로 feature map을 생성합니다. 이로 인해 CNN은 서로 다른 loacal feature들을 추출할 수 있게 됩니다. 이미지의 다양한 영역에서 동일한 결함을 감지하는 데에도 도움이 되는데, 이는 convolution layer가 가중치를 공유하고 있기 때문입니다.(모든 $i$와 $j$에 대해 $\omega_{ij}$이 동일) 이 가중치 공유 메커니즘은 convolution layer가 이미지의 다른 영역에서도 동일한 결함을 감지하도록 해줍니다. 그러나 이러한 가중치 공유 방식은 정보를 더 큰 영역에서 얻어야 하는 mixed-type DPR에는 적합하지 않을 수 있습니다.

 

따라서, mixed-type DPR에서 더 나은 성능을 발휘하기 위해 저자들은 CNN을 향상하기로 결정했습니다. 이를 위해 두 가지 유형의 dynamic perception(trans-pixel 및 trans-channel)을 적용합니다. Trans-pixel dynamicity는 공간 정보에 초점을 맞추며, 이를 통해 convolution이 다양한 결함 패턴에 적응하고 그 feature를 드러내도록 돕습니다. 한편, vanilla CNN은 channel을 통해 다른 측면의 정보를 얻습니다. 저자들은 이러한 정보를 더욱 종합하고 중복성을 줄이기 위해 trans-channel dynamicity를 추가합니다.

Building Dynamic Perception

위와 같은 static convolution의 perception은 다음과 같이 정의됩니다.

$$ y = \sigma(W^Tx+b) $$

$W$는 가중치 (또는 convolution kernel), $b$는 편향, $\sigma$는 활성화 함수입니다.

 

Dynamic Perception

이와는 다르게 저자들은 dynamic perception을 다음과 같이 정의합니다.

$$y = \sigma[\hat{W}^T(x)\Phi(x)+\hat{b}(x)]$$

$$ \hat{W}(x) = \Lambda(\sum\limits_{k=1}^C\mu_k(x)\hat{\omega}_k),\ \hat{b}(x) = \Lambda(\sum\limits_{k=1}^C\mu_k(x)\hat{b}(x)) $$

$\mu_k$ (BDG)는 $k$번째 원본 convolution kernel의 가중치를 생성해 주고, $\hat{\omega}_k$은 $\mu_k$에 의해 생성된 $k$번째 convolution kernel이고, $\hat{b}_k(x)$는 원래의 편향 $\hat{b}_k$를 위와 같이 처리한 결과이며, $\Phi(x)$는 $\Phi$ (trains-pixel dynamic generator)에서 생성된 가중치 행렬, $\Lambda$ (trans-channel dynamic generator)는 multichannel을 결합해 주고, C는 input의 channel 개수를 나타냅니다.

 

위 그림 (a)에 나와 있는 것처럼(회색 부분은 vanilla convolution), $\mu_k(x)$는 각 kernel의 중요도를 나타내고, 저자들은 이 값을 활용하여 개별적인 dynamic kernel을 생성하고 convolution에 포함시킵니다. 거기에 그림 (b)에 나온 것처럼 $\mu_k$를 3차원으로 확장합니다. 여기서 저자들은 입력 데이터의 각 픽셀에 집중하고, 해당 픽셀들 간의 상호 연결을 모델링하고자 $\Phi$를 제안합니다. $\Lambda$는 convolution kernel들을 종합하고, 그들 사이의 상호 연결성을 모델링하는 데에 초점을 맞춥니다. 이 과정의 설명은 그림 (c)에서 시각적으로 보입니다. 저자들은 이 세 가지 dynamic generator들을 결합했습니다.

Multifacted Dynamic Convolution

위 그림의 설계를 따라서, 저자들은 trans-channel dynamic generator가 multi-channel 결합을 이끌어내며, 이로써 channel 간의 중복성을 줄이고 channel별 정보를 합성할 수 있다고 제안합니다. 또한, trans-pixel dynamic generator는 공간 정보에 초점을 맞추며, 결함의 공간적인 feature를 드러내고 복잡한 결함 패턴을 다루는데 도움을 줄 수 있다고 제안합니다.

 

이 두 개의 generator(trans-channel dynamic generator와 trans-pixel dynamic generator)에 대해서, autoencoder의 구조를 사용하여 이들을 생성합니다. 이 구조는 관련 정보를 추출하기 위해 인코더를 사용하고, feature들의 상대적인 중요성을 파악하기 위해 디코더를 활용합니다. 출력은 인식에 필요한 feature들을 강조하는 가중치 벡터나 행렬입니다. 이는 해당 feature들을 분리하고, 인식하기 쉽도록 변환합니다. 그러나 이 구조는 autoencoder와 유사하게 생겼지만, 논문의 dynamic generator들은 디코딩된 출력이 입력과 최대한 유사해야 될 필요는 없습니다. 대신, dynamic generator들은 결함의 관련 feature들을 강조하는 가중치를 생성하는 것을 목표로 하죠.

 

참고로 autoencoder는 Unsupervised learning 방법을 사용해 입력 데이터의 representation을 학습합니다. Encoder를 통해 입력 데이터를 저차원 벡터로 만들어 중요한 특징들을 잘 나타내도록 학습하고 decoder를 통해 저차원의 hidden representation을 다시 원래의 입력 데이터로 복원하도록 학습하는 역할을 합니다.

Autoencoder 구조

 

Trans-Channel Dynamic Generator and MFD

MFD 구조

MFD의 전체 구조는 위 그림에 나와 있습니다. Trans-Channel Dynamic Generator와 함께 multichannel을 결합하는 과정은 아래쪽 가지에 표시되어 있으며, Trans-Pixel Dynamic Generator를 사용한 Spatial Dynamicity Generation Module(SDGM)이 위쪽 가지에 표시되어 있습니다. 위 그림에서 저자들은 SDGM의 출력을 사용하여 feature map $\alpha$ (위쪽 가지)을 생성합니다. 이 feature map은 주로 공간적인 정보를 포함하고 있죠. 반면, 아래쪽 가지에서는 Trans-Channel Dynamic Generator를 활용하여 $\beta$에서 channel별 정보를 얻습니다. (M은 행렬 곱)

기존의 vanilla convolution에서는 feature map의 각 channel에 서로 다른 정보의 측면이 표현되었죠. 그러나 mixed-type DPR의 경우, 관련 그래픽 feature들은 더욱 숨겨져 있고 인식하기 어려울 수 있기 때문에, 단순히 channel의 수를 증가시키는 것은 중복성을 낳을 수 있습니다. 이를 피하기 위해, Trans-Channel Dynamic Generator $\Lambda_i$를 도입하였습니다. 이는 multichannel 결합 메커니즘을 guide 하는 역할을 합니다. 이 메커니즘은 $\Lambda_i$에 따라 channel들을 결합하고, 모든 channel을 대상으로 정보를 더욱 잘 합성하는 기능을 수행합니다.

$\Lambda_i$는 먼저 생성되어 결합을 guide 하고, 이 과정이 dynamic 하고 adaptive가 되도록 보장하여 channel들 간의 정보를 더 잘 통합하는 데 도움이 됩니다. 전체적인 과정은 아래와 같이 설명할 수 있습니다.
$$\Lambda_i = \text{LN}_i^4\{\text{LN}^3[\text{GAP}(O)]\},\ i=1,2,...,L$$
GAP는 Global Average Pooling으로 channel내의 정보만을 보존하는 기능입니다. 이 과정은 autoencoder의 구조와 유사하죠. 먼저 저자들은 벡터를 $\text{LN}^3$을 사용해 낮은 차원 $\mathbb{R}^{1\times (C/r)}$로 투영합니다. 이렇게 함으로써 compact embedding을 생성합니다. (논문에서는 $r$을 16으로 설정) 그리고 난 후, $\text{LN}_i^4$를 사용해 해당 embedding을 다시 복원합니다. 이러한 방식으로 channel별 정보를 더욱 효과적으로 통합할 수 있습니다. 알아야 할 점은 $\text{LN}_i^4$를 위해서 $L$개의 다른 학습 가능한 가중치를 사용하여 같은 양의 trans-channel dynamic generators $\Lambda_i \in \mathbb{R}^{1\times L}$ 를 생성하는 것입니다. 또한, embedding을 원래 차원인 $\mathbb{R}^{1\times C}$로 복원하는 대신, 저자들은 $L=\lfloor C/2^{\log_2(C)^{1/2}}\rfloor$로 설정합니다. (여기서 L은 원래 channle 수의 제곱근($(C)^{1/2}$)보다 작은 최댓값으로 설정) 이는 매개변수를 줄이기 위해 사용하는 설정입니다.

Multichannel 결합을 수행하기 위해서는 먼저 입력 feature 행렬을 2차원 이미지로 변환해야 합니다. 이를 위해 먼저 입력을 $\text{ConvQ}$를 사용하여 $\mathbb{R}^{H\times W\times C}$에서 $\mathbb{R}^{H\times W\times L}$로 압축해 $\Lambda_i$의 차원에 맞춥니다. 이렇게 함으로써 더 깊은 네트워크에서 $C$가 커질 때 발생하는 계산량 증가를 피할 수 있습니다. 이후에는 batch-normalization를 사용하여 행렬을 재구성합니다. 이러한 재구성된 행렬은 $\varphi \in \mathbb{R}^{L\times Z}$ 형태가 되며, 여기서 $Z = H \times W$입니다. 이 행렬은 이후에 $\Lambda_i$와 곱해집니다. 여기서 $H$와 $W$는 입력 feature 행렬의 높이와 너비를 나타내는 값들입니다. $\varphi$의 각 행은 입력 feature 행렬의 각 channel의 정보를 나타냅니다.

multichannel 병합

Multichannel 결합 과정을 더 자세히 설명한 것은 위 그림에서 확인할 수 있습니다. 위 그림에서 $\Lambda_i$는 $\varphi$와 개별적으로 곱해지며, 이로 인해 최적화된 벡터들 $v_i \in \mathbb{R}^{1\times Z}$가 생성됩니다. 이 벡터들의 수는 $\Lambda_i$와 같은 수량으로 생성됩니다.
$$v_i = \Lambda_i \otimes \varphi$$
$\varphi$는 서로 다른 $\Lambda_i$ 값들과 $L$번 곱해져서 벡터 $v_i$가 생성됩니다. 각각의 $v_i$ 값은 서로 다르며, 전체 channel들 ($\varphi$의 모든 행들)의 통합 결과를 나타냅니다. $v_i$는 $\Lambda_i$가 channel들 사이의 정보 분포에 따라 계속 변화함에 따라 동적으로 변합니다.

이후, $v_i$는 연결(concatenate)되어 2차원 이미지가 생성되며, 이후 이 이미지는 3차원 행렬로 다시 재구성(reshape)됩니다. 이후에는 $\text{ConvP}$를 사용하여 channel의 개수를 복원하고, 결과적으로 feature map인 $\beta$가 생성됩니다.

$\Lambda_i$를 기반으로, 서로 다른 channel들 간의 상호작용을 adaptive 하게 모델링하며, 이로써 다양한 측면의 결함 정보를 더욱 정교하게 개선하고 관련된 feature들을 드러낼 수 있습니다. 이로 인해 생성된 $\beta$는 channel별 정보를 매우 잘 해석할 수 있으며, 이는 MFD가 서로 다른 측면의 더욱 정교한 feature들을 제공할 수 있게 됨을 의미합니다.

마지막 단계는 $\alpha$를 $\beta$에 더하여 feature map $\gamma$를 생성하고, 이를 결함 인식에 활용합니다. $\alpha$는 주로 trans-pixel dynamic generator에서 유도되어 쉽게 이해할 수 있는 adaptive 한 공간 정보를 갖고 있습니다. 반면에 $\beta$는 channel들 간의 상호작용에 더 초점을 맞추며, 서로 다른 측면의 정보를 통합하여 더욱 종합적인 형태로 만들어 관련된 feature를 쉽게 인식할 수 있도록 합니다. 이러한 dynamic generator들은 MFD에 유연성을 부여하여 다양한 입력에 적응할 수 있게 합니다. 이는 MFD가 다양한 종류의 결함 정보를 더욱 잘 통합하고 이해할 수 있게 도와줍니다.

Trans-Pixels Dynamic Generator

SDGM 구조

SDGM의 자세한 구조는 위 그림에 나와 있습니다. SDGM의 주요 구성 요소는 trans-pixel dynamic generator입니다. Spatial dynamicity를 생성하기 위해 입력 feature 행렬은 먼저 1차원 채널별 BDG를 통해 처리됩니다.
$$\mu_k(x)=\text{LN}^2\{\text{LN}^1[\text{GAP}(x)]\}\otimes x$$
$\text{GAP}$는 global average pooling으로 입력 이미지 $X \in \mathbb{R}^{H\times W\times C}$를 $\mathbb{R}^{1\times1\times C}$로 압축해줍니다. ($H$는 높이, $W$는 너비, $C$는 channel) $x$는 입력 feature 행렬이고, $\text{LN}^{1,2}$는 선형 계산을 나타냅니다. $\text{LN}^1$은 입력을 압축된 embedding $\mathbb{R}^{1\times 1\times(Cr)}$로 투영하고 $\text{LN}^2$는 차원을 원래의 형태인 $\mathbb{R}^{1\times 1\times C}$로 복원합니다. 이 방법은 원본 입력으로부터 basic dynamicity를 생성하고 대략적으로 통합된 정보를 얻는 매우 간단한 방법입니다. 그런 다음 출력값에 $x$를 곱하여 $\mu_k(x)$를 생성하며, 이는 이후 trans-pixel dynamic generator에 사용됩니다.

Spatial dynamicity를 얻기 위해, BDG의 디자인을 따라가면서 3차원 공간으로 확장하여 spatial dynamicity를 생성합니다. 이 trans-pixel dynamic generator를 생성하기 위해, 저자들은 3차원 autoencoder의 구조를 사용하여 embedding $\epsilon^{H\times W\times (C/2)}$와 $\Phi$를 얻습니다.
$$\Phi = \text{Conv3}(\text{Conv2}(\text{Conv1}(s)))$$
여기서 $\mu_k(x) \in \mathbb{R}^{H\times W\times C}$입니다. $\text{Conv1}$은 1 x 1 convolution으로 encoder같이 행동합니다. 이는 입력 데이터의 channel 수를 절반으로 줄이고 정보의 압축된 embedding인 $\epsilon^{H\times W\times(C/2)}$를 생성합니다. $\text{Conv2}$는 3 x 3 dilated convolution이고 논문에선 dilation 비율을 4로 설정했습니다. Dilated convolution은 더 큰 receptive field를 제공하여 embedding 내에서 더 넓은 범위의 정보를 종합하고, 인코딩 중에 발생할 수 있는 정보 손실을 피하는데 도움을 줍니다. $\text{Conv3}$는 decoder 역할을 수행하는데, 이는 1 × 1 convolution입니다. 이 convolution은 행렬을 원래의 차원으로 다시 투영하여 $\Phi$를 생성합니다. $\otimes$는 행렬 곱을 나타냅니다. $\text{Conv1}$, $\text{Conv2}$, $\text{Conv3}$는 입력의 크기를 보존하며, 비선형성을 보장하기 위해 batch-normalization과 ReLU로 연결됩니다.

여기서는 HSigmoid를 사용하여 가중치 행렬을 생성합니다. 이는 일반적인 sigmoid에서 지수를 사용하는 것을 피하고, 계산을 가속화하는 데 도움이 됩니다.

$$ \text{HSigmoisd}(t)=\begin{cases}1&t > 3\\ t/6 + 0.5&3 \geq t \geq -3 \\0&t < -3\end{cases} $$

가중치 행렬이 생성된 후, 이를 $\mu_k(x)$와 곱하여 pixel adaptive weight $O \in \mathbb{R}^{H\times W\times C}$를 생성합니다.
$$O = \Phi \otimes \mu_k(x)$$
$O$는 주로 필요한 spatial dynamicity와 결함의 특징을 나타내는 값으로 이루어져 있습니다. Trans-pixel dynamic generator는 SDGM의 주요 구성 요소로서, 픽셀 간의 상호 연결을 모델링하고 공간적 정보를 습득합니다.

Mixed-Type Defect Pattern Recognition Framework

Framework

MDPR-Net은 MFD를 기반으로 구축된 네트워크로, 위 그림에서 보이는 것과 같이 주로 residual connection을 사용하며, 총 네 개의 기본 블록이 있으며 각 블록은 네 개의 MFD 모듈로 구성되어 있습니다. Residual connection을 사용하는 이유는 MFD의 layer를 쌓을 때 계산 비용을 크게 줄이고 학습 속도를 가속화하기 위함입니다.

Multilabel classification

Mixed-type DPR을 위해 MDPR-Net은 동시에 다양한 종류의 결함들을 인식해야 합니다. 이는 최종 출력인 $\lambda_k, k=1,2,…8$ (8가지 기본 결함)을 기준으로 특정 single-type 결함이 존재하는지 여부를 판단하여 달성됩니다. $\lambda_k$의 값은 특정 결함이 발생할 확률을 나타내며, $0 \leq \lambda_k \leq 1$입니다. $\lambda_k$ 값이 높을수록 해당 결함이 발생할 가능성이 큽니다. 또한, 특정 결함의 존재 여부를 판단하기 위해 임계값 $t$가 사용됩니다. 만약 $\lambda_k > t$이면, 해당 결함은 존재하는 것으로 labeling 되며, $\lambda_k < t$이면 해당 결함은 발생하지 않았을 수도 있습니다. 대부분의 이전 연구에서는 $t$를 고정된 값으로 설정하는 경우가 많았데 여기서도 이를 채택하여 $t$를 0.5로 설정하였습니다.

Experiment and Analysis

Implementation Details

실험에서는 앞에서 소개된 dataset에서 wafer map의 80%를 무작위로 선택하여 training set로 사용하고, 나머지 20%를 test set로 사용합니다. 실험에 포함된 모든 모델들은 Adam optimizer를 사용하고, learning rate은 0.001로 설정합니다. 또한, cosine annealing LR을 scheduler로 사용합니다. 모델은 100 epoch 동안 학습하며, 배치 크기는 128입니다.

Accuracy

위에 표시된 결과로부터, 해당 framework는 빠르게 수렴하며 약 8번째 epoch에서 최적화된 지점에 도달한 것으로 보입니다. 테스트 정확도는 약간의 변동이 있지만 합리적인 범위 내에 있으며, 그래프가 학습 정확도 그래프와 근접한 형태를 보입니다. 이는 논문의 framework가 짧은 시간 내에 효과적으로 학습되고, 심각한 overfitting을 피할 수 있다는 것을 나타냅니다.

먼저, 제안된 MDPR-Net의 우수성을 검증하기 위해 Vision Transformer (ViT), Squeeze-and-Excitation Attention 모듈이 추가된 CNN (CNN-SE), DenseNet169, Opt-Res, 다른 CNN 다섯 개의 layer(CNN-5), deformable CNN, 그리고 Attention이 추가된 U-Net과 비교했습니다. 그다음, MFD의 능력을 보여주기 위해 이전에 언급한 네트워크들을 vanilla CNN을 사용할 때와 MFD를 사용할 때의 성능을 비교했습니다.

네트워크의 성능을 통계적으로 평가하기 위해 accuracy, precision, recall, F1-score 및 $\alpha\text {-score}$라는 다섯 가지 지표가 사용되었습니다. 참고로 $\alpha$-score의 식은 다음과 같습니다.

$$\alpha\text{-score}=(1-\frac{\lambda\times\text{FN}+\rho\times \text{FP}}{ \text{ TP}+ \text{ FN}+\text{FP}})^\alpha*100\%$$

$$(\alpha, \lambda, \rho \geq0,\  \lambda=1|\rho=1)$$

$\alpha$-score에서 $\lambda=1$, $\rho = 0.25$로 설정되었습니다. 이는 놓친 인식에 더 많은 강조를 둔 것입니다. 이는 wafer 테스트 도중 놓친 결함이 후속 회로 제작에 더 큰 영향을 미칠 수 있기 때문입니다. 또한, $\alpha = 2$로 설정하여 이러한 오류에 더 높은 페널티를 부여했습니다.

Compared With the State-of-the-Art Methods

모델별 성능 비교

MDPR-Net을 다른 5개의 이미지 및 결함 인식 네트워크인 ViT, CNN-SE, DenseNet169, Opt-res, CNN-5, dc-Net, 그리고 U-Net과 비교하였습니다. 결과는 위 표에 나와 있습니다. 괄호 안의 숫자는 38개 결함에 대한 지표의 표준 편차를 나타냅니다. 표에서 확인할 수 있듯이, MDPR-Net은 모든 다섯 가지 지표에서 다른 네트워크들보다 뛰어난 성능을 보였습니다. 특히, MDPR-Net은 정확도에서 98.67%를 기록하여 다른 방법들보다 약 1.5% 높죠. 단, U-Net은 여전히 0.2% 더 낮은 정확도를 기록했습니다. Precision, recall, 그리고 F1-score에서도 MDPR-Net은 뛰어난 성능을 유지하며, 이 세 가지 지표에서 모두 98% 이상의 결과를 달성했습니다. 높은 F1-score는 제안된 MDPR-Net이 대부분의 놓친 인식을 피하면서 대부분의 인식을 올바르게 유지하는데 성공했음을 나타냅니다. $\alpha$-score에서는 다른 네트워크들이 높은 성적을 기록하지 못했지만, U-Net은 96.25%를 얻었습니다. 그러나 MDPR-Net의 $\alpha$-score는 96.65%로, dc-Net과 Opt-res와 같은 네트워크보다 약 4% 높으며, 7% 더 높은 결과를 보였습니다. $\alpha$-score는 네트워크의 전반적인 성능을 엄격하게 평가하는 지표로, 놓친 인식을 특히 강조합니다. MDPR-Net은 놓친 인식이 더욱 엄격하게 패널티를 받는 경우 더욱 뛰어난 성능을 보였습니다.

U-Net의 성능은 MDPR-Net에 가장 근접했지만, 논문의 framework가 더 안정적임이 입증되었습니다. 특히 precision과 recall에서의 편차를 보면, 다른 방법들의 안정성이 MDPR-Net보다 훨씬 나쁘다는 것을 알 수 있습니다.

Validity of MFD

MFD 사용 유무 성능 비교

MFD의 능력을 더 확인하기 위해 mixed-type 결함 인식을 위해 제안된 네 개의 다른 네트워크에 MFD를 구현하였습니다. DenseNet169, Opt-res, CNN-SE 및 CNN-5를 포함하고, 이들의 성능을 vanilla CNN과 MFD를 사용할 때 비교하였습니다. 전체 결과는 위 표에 나와 있습니다. "DenseNet(+)"와 같이 표기된 " + "는 해당 네트워크가 MFD를 사용한다는 것을 의미하며, "DenseNet(-)"와 같이 표기된 " - "는 해당 네트워크가 여전히 vanilla CNN을 사용한다는 것을 의미합니다.

위 표에서는 DenseNet의 개선이 가장 작으며, 정확도가 0.19% 증가하고 $\alpha$-score가 0.44% 증가합니다. 이는 이미 다른 방법들과 비교하여 DenseNet(−)의 우수한 성능에 기인할 수 있습니다. CNN-SE와 CNN-5의 경우, 두 네트워크 모두 MFD를 적용한 후 성능이 크게 향상됩니다. 특히, $\alpha$-score를 제외한 지표에서, CNN-SE(+)는 CNN-SE(-)보다 약 0.6% 우수하며, CNN-5(+)는 CNN-5(-)보다 약 1.0% 우수합니다. $\alpha\text{-score}$의 개선은 더욱 크며, CNN-SE와 CNN-5 각각 약 1.3%와 2.0% 개선됩니다. 이와 더불어, MFD를 사용함으로써 표준 편차도 줄어듭니다. 이는 CNN-5를 통해 확인할 수 있습니다: 정확도의 표준 편차가 2.7에서 1.6으로 줄어들고, $\alpha$-score의 표준 편차가 5.1에서 2.9로 줄어들었습니다. 따라서, MFD는 네트워크의 전반적인 성능을 향상하는데만 그치지 않고, 다양한 결함들에 대한 성능을 안정화하는 데에도 기여합니다.

MFD의 가장 뚜렷한 효과는 Opt-res에 나타납니다. 예를 들어, Opt-res(−)의 정확도는 93.74%로, Opt-res(+)의 98.17%보다 훨씬 낮습니다. 이는 precision, recall 및 F1-score에도 동일하게 적용됩다. 가장 주목할 만한 개선은 $\alpha\text{-score}$에서 이루어지는데, Opt-res(+)는 95.56%로 약 6% 더 높은 성능을 달성합니다. 마찬가지로, Opt-res(+)의 성능은 안정적이며, $\alpha$-score의 표준 편차가 3.8로 줄어듭니다. 또한, Opt-res를 다른 세 개의 네트워크와 비교해 보면, vanilla CNN을 사용할 때 성능이 나쁘지만, MFD를 사용한 후 성능이 다른 네트워크를 능가할 수 있습니다. 예를 들어, Opt-res(+)는 특히 CNN-SE(+) 보다 우수한 성능을 보이며, Opt-res(−)는 CNN-SE(−) 보다 훨씬 더 낮은 성능을 보입니다. 이는 MFD가 네트워크의 인식 능력을 상당히 향상하고 높은 수준의 성능을 유지할 수 있음을 나타냅니다.

알파 점수 비교

위 그림은 데이터의 분포를 시각화하고 다른 네트워크들 간의 성능 안정성을 비교하는 box 그림입니다. 그림에서 MFD를 사용하는 네트워크들("+")은 Vanilla CNN을 사용하는 네트워크들("-")에 비해 일관적으로 더 높은 성능을 달성하는 것으로 나타납니다. 또한, MFD를 사용하는 네트워크들의 $\alpha$-score의 범위(전체적인 성능을 평가하는 더 엄격한 지표)가 더 작으며, 이는 MFD가 다양한 결함에 대해 일관된 성능을 보장하는 데 도움이 된다는 것을 나타냅니다. 또한, MFD를 사용하는 네트워크들의 평균 및 중간값이 Vanilla CNN을 사용하는 네트워크들에 비해 더 높습니다. 이는 MFD가 모든 종류의 결함에 대해 전반적으로 네트워크의 성능을 개선하는 능력을 보여줍니다. 총괄적으로, 위 그림은 MFD를 결함 인식 작업에 적용하는 네트워크들의 우수성과 안정성을 더욱 강화시킴을 보여줍니다.

MDPR, CNN-5(+), CNN-5(-) 성능 비교

위 표에서는 MDPR-Net, CNN-5(+) 및 CNN-5(-)의 38가지 결함에 대한 정확도와 $\alpha\text{-score}$를 보여줍니다. 표에서, MDPR-Net은 C1부터 C22까지(단일 유형과 혼합 유형 결함)에서 높은 정확도를 보여주며, 대부분의 결함에서 99% 이상의 정확도를 유지합니다. 다만 C9, C12 및 C16에서는 정확도가 낮아집니다. 이에 해당하는 $\alpha\text{-score}$ 또한 상대적으로 높은 수준을 보여줍니다.(일반적으로 C4, C9 및 C18을 제외하고 97% 이상) 이는 MDPR-Net이 비교적 단순한 결함 패턴을 인식하는 데 탁월하게 성과를 발휘한다는 것을 나타냅니다. 더 복잡한 세 가지 혼합 유형과 네 가지 혼합 유형 결함의 경우, MDPR-Net은 여전히 우수한 성능을 유지합니다. C29를 제외한 모든 결함에서 정확도가 96% 이상입니다. 또한, C24, C26, C31 및 C38의 경우 MDPR-Net의 정확도는 99% 이상으로 뛰어납니다. 반면, CNN-5(+)의 C38에 대한 정확도는 97.01%입니다. 그러나 MDPR-Net의 C38에 대한 $\alpha\text{-score}$는 96.36%로, 크게 우수한 수준입니다. 이는 MDPR-Net이 소량의 누락으로 다양한 종류의 결함을 정확하게 인식할 수 있다는 것을 보여줍니다.

 

CNN-5(+)와 CNN-5(-)의 성능을 비교하면, MFD가 각 유형의 결함에 대해 네트워크의 성능을 크게 향상하는 것이 분명하죠? 구체적으로, C9와 같은 단일 유형 결함의 경우, CNN-5(+)의 $\alpha$-score는 95.76%로, CNN-5(-)보다 약 15% 높습니다. C12와 같은 두 가지 혼합 유형의 결함의 경우, CNN-5(+)의 정확도는 약 2% 높고, α-score는 약 4% 높습니다. C30과 같은 세 가지 혼합 유형의 결함의 경우, 정확도는 약 3% 높고, α-score는 약 6% 높아집니다. 마지막으로 C37과 같은 네 가지 혼합 유형의 결함의 경우, MFD는 CNN-5의 정확도를 94.91%로 높여주며, CNN-5(-)보다 약 10% 높아집니다. 이에 따라, CNN-5(+)의 C37에 대한 α-score는 89.90%로 약 10% 향상됩니다. 모든 결함에 대한 높은 $\alpha$-score는 MFD가 결함의 누락을 피하도록 네트워크에 기여한다는 것을 나타냅니다.

MDPR-Net는 다른 일반적인 네트워크들과 비교했을 때 mixed-type DPR을 처리하는 데에서 우수한 성능을 보여줍니다. 또한, MFD를 사용하는 네트워크와 Vanilla CNN을 비교하면, MFD를 사용하는 네트워크가 항상 모든 다섯 가지 평가 지표에서 더 우수한 성과를 얻습니다. 각각의 개별적인 결함에 대해서도 MFD를 사용하는 네트워크는 정확도와 $\alpha$-score를 현격히 향상합니다. MFD를 사용하는 네트워크들이 상대적으로 높은 $\alpha$-score를 달성한 것은 대부분의 결함이 올바르게 불량으로 식별되도록 효과적으로 보장한다는 것을 보여줍니다. 이러한 특성은 IC 산업에서 중요한데요. 불량이 있는 wafer가 정확하게 인식되지 않고 폐기되지 않으면 이후 제조 과정에서 많은 비용을 발생시킬 수 있기 때문입니다.

Visualization of Output

시각화 결과

논문에서 제안한 MFD가 wafer map의 관련 정보를 효과적으로 인코딩하고 다양한 측면에서 합성하는 능력을 더 자세히 보여주기 위해 MFD 모듈의 출력을 시각화합니다. 위 그림에서 원본 wafer map  (D + L 결함)을 첫 번째 이미지로 보여줍니다. 나머지 64개의 이미지는 MFD 모듈의 channel 채널입니다.

거의 모든 channel이 결함 패턴을 적절하게 강조하는 것이 보이죠? 예를 들어, 1행 7열의 이미지는 배경에 초점을 맞춤으로써 결함 패턴을 구별합니다. 그러나 1행 10열의 이미지는 결함 자체에 초점을 맞춤으로써 결함 패턴을 구별합니다. 이는 MFD가 입력으로부터 정보를 효과적으로 통합하고 다양한 방식으로 정보를 합성할 수 있는 능력을 갖고 있음을 나타냅니다. 그러나 주의해야 할 점은 몇 가지 channel에서는 결함 패턴을 명확하게 표현하지 못하는 것이 있습니다. 예를 들어, 3행 8열의 이미지는 결함 패턴과 배경 사이의 명확한 구별을 제공하지 못할 수 있습니다. 이는 대부분의 다른 channel에서 결함 패턴과 배경의 명확한 구분을 성공적으로 보여주기 때문에 어느 정도 용인될 수 있죠. 또한, channel들 중에서는 일부 channel이 서로 비슷해 보입니다. 예를 들어, 3행 5열과 6열의 이미지, 그리고 5행 4열과 6열의 이미지가 매우 유사하죠. 이러한 유사성의 한 가지 가능한 설명은, trans-channel dynamic generator가 채널을 동적으로 합치고 중복을 줄여줌으로써 모든 channel의 정보를 더욱 종합하여 원본 wafer map의 spatial feature를 나타내는 능력을 대부분의 channel에게 부여한다는 것입니다.

또한, 다른 channel들은 결함 패턴을 다르게 강조하면서도, 흩어진 결함 die와 배경으로부터의 간섭을 줄이고 밀집한 die들에 초점을 맞춥니다. 예를 들어, 4행 8열의 이미지는 특정한 패턴을 형성하는 뭉쳐진 결함 die들을 주로 강조하면서 원본 wafer map에 뿌리친 die들은 간과합니다. 한편, 4행 12열의 이미지는 다른 방식으로 주로 흩어진 die들과 배경에 초점을 맞추면서 뭉쳐진 die들은 간과합니다. 이러한 차이의 가능한 이유는, 구현된 trans-pixel dynamic generator가 서로 다른 위치 간의 상호 연결을 모델링하는 데 도움이 되기 때문일 수 있습니다. 그러나 뭉쳐진 결함 die의 경우, 그들의 상호 연결은 뿌리친 die보다 더 뚜렷하고 쉽게 인지할 수 있습니다. 결과적으로, 제안된 MFD는 전체 wafer map에서 뭉쳐진 결함 die들의 관련 정보를 수집하면서 흩어지고 중요하지 않은 결함 die들 및 배경을 무시할 수 있습니다.

Conclusion

이 논문에서는 mixed-type defect pattern recognition을 위한 MDPR-Net을 제안합니다. 이 framework의 핵심 구성 요소는 MFD로, 여기에는 trans-channel dynamic generator와 trans-pixel dynamic generator를 결합하여 다양한 측면에서 정보를 동적으로 얻습니다. 구체적으로, 저자들은 먼저 1차원 autoencoder 구조로 설계된 BDG(Basic Dynamic Generator)를 사용하여 입력을 처리합니다. 이를 기반으로 3차원 공간으로 확장하여 trans-pixel dynamic generator를 설계하고 전체 wafer map의 픽셀 간 상호 연결을 모델링하여 픽셀 수준에서 관련 정보를 해석하는 데 도움이 됩니다. 또한 BDG를 확장하여 trans-channel dynamic generator를 생성하고 입력의 channel을 동적으로 융합하는 데에 사용합니다. 이를 통해 channel의 중복성을 줄이고 모든 channel에서 정보를 더욱 종합합니다. MFD로 MDPR-Net을 구축하기 위해 residual connection도 활용했습니다.

 

이렇게 해서 논문 리뷰가 끝났는데요. 오늘 논문은 상당히 어려운 내용이라서 이해가 잘 안 되실 수도 있습니다. 사실 저도 완벽하게 이해했다고는 할 수 없지만 그래도 조금이나마 도움이 되고자 제가 이해한 대로 글을 적어봤습니다.

 

그럼 긴 글 읽어주셔서 감사합니다!