반도체 제조 산업은 첨단 분석 기술에 힘입어 혁신적인 시대를 맞이하고 있습니다. 본 발표에서는 JMP 소프트웨어 내에서 예측 모델링 및 진단 분석을 적용하여 제조 성과, 특히 중요한 초기 선별 및 등급 테스트 단계에서의 효율성을 획기적으로 향상시키는 방안을 살펴봅니다. 반도체 생산 공정의 다양한 단계에서 수집된 포괄적인 파라미터 데이터를 활용하여, 단위별 합격/불합격 예측 정확도를 높이고 잠재적 결함의 근본 원인을 규명하는 여정을 시작합니다.
본 연구는 JMP의 예측 모델링 기능을 전략적으로 활용하여 반도체 제품의 최종 시스템 레벨 테스트 상태를 정확하게 예측하는 방법을 제시합니다. 이러한 접근 방식은 문제점을 조기에 발견할 뿐만 아니라 시의적절한 시정 조치를 가능하게 하여 수율 향상과 우수한 제품 품질을 보장합니다. 또한, JMP 내의 진단 분석 기능은 데이터에 대한 심층 분석을 제공하여 제조업체가 복잡한 생산 공정 전반에 걸쳐 발생하는 실패의 근본 원인을 파악하고 해결할 수 있도록 지원합니다.
본 프레젠테이션에서는 JMP 기능의 실제 적용 사례를 소개하고, 반도체 제조 워크플로우를 간소화하는 데 있어 이러한 기능들이 얼마나 중요한 역할을 하는지 보여줍니다. 예측 모델링과 진단 분석을 효과적으로 활용하여 생산 결과를 최적화하고, 비용을 절감하며, 제품 신뢰성을 향상시키는 방법을 확인해 보세요. 반도체 제조의 미래를 새롭게 정의할 최첨단 분석 전략을 함께 살펴보시기 바랍니다.
안녕하세요 여러분. 저는 존 쉬이고, 제 동료는 수라즈 신디아입니다. 저희 둘 다 인텔에서 근무하고 있습니다. 아시다시피 인텔은 반도체 제조 회사입니다. 저희는 컴퓨터 칩을 비롯한 다양한 칩을 생산합니다. 오늘은 저희가 진행한 연구 중 하나를 소개해 드리려고 합니다. 오늘 발표의 제목은 "JMP를 활용한 반도체 제조 테스트의 혁신"입니다.
저희는 JMP 내부에 AI 방법론을 적용하여 테스트 스티어링에 대한 예측 모델링을 수행합니다. 예측은 네 부분으로 구성됩니다. 첫 번째 부분에서는 반도체 제조 산업의 현황을 간략하게 소개하고, 두 번째 부분에서는 JMP에서 신경망과 부스팅을 활용한 예측 모델링 방법을 설명합니다.
다음으로 JMP 데모 사용 사례 연구를 통해 JMP에서 제조 테스트에 맞게 테스트를 적용하는 방법을 보여드리겠습니다. JMP 애플리케이션을 살펴보고 JMP 신경망과 PCA를 사용하는 방법을 설명합니다. 마지막으로 요약 및 결론을 제시합니다.
반도체에 대한 개요입니다. 반도체는 현대 기술의 핵심에 있는 매우 중요하고 빠르게 발전하는 분야입니다. 반도체는 실제로 IC(집적회로)라고 불리며 스마트폰, 컴퓨터, 자동차, 가정용 냉장고 등 수많은 전자 기기에 필수적인 부품으로 사용됩니다.
이 산업은 높은 수준의 혁신과 상당한 자본 지출이 특징입니다. 어떤 반도체 공장 하나를 짓는 데 100억 달러가 투자될 수도 있습니다. 실리콘 시장의 수요는, 적어도 반도체와 관련된 시장 부문, 예를 들어 메모리, 고속 메모리 또는 마이크로프로세서 등에 집중되어 있습니다.
누구나 다 아는 것처럼 CPU는 컴퓨터에 사용되는 표준 회로인 범용 집적 회로(CIC)와 자동차 등 다양한 기기에 사용되는 ASIC(응용 분야별 집적 회로), 그리고 신호등에 사용되는 아날로그 회로 등 널리 알려진 회로입니다.
다음으로 반도체 제조 모델이 어떤 모습인지 아주 간략하게 설명해 드리겠습니다. 크게 세 가지 유형의 회사로 나눌 수 있는데, IDM(통합 개발업체), 팹리스(Fabless) 회사, 그리고 파운드리(Fure-play Foundries)입니다. 팹리스 회사는 칩 설계만 담당하고 직접 칩을 생산하지는 않습니다. AMD, 엔비디아, 퀄컴 등이 이러한 회사들입니다.
또한, 일부 회사는 자체 제품이 없습니다. 자체 설계 IC는 없지만, 다른 팹리스 회사를 위해 IC를 생산합니다. TSMC나 파운드리 같은 회사들이 그 예입니다. 하지만 인텔이나 삼성처럼 모든 것을 자체적으로 하는 회사도 있습니다.
기본적으로 저희는 자체 칩 설계를 바탕으로 칩을 직접 제작하고, 자체 제조 공장을 건설합니다. 그리고 최종 칩을 조립하여 HP나 Dell 같은 고객사에 배송하고, 고객사는 이를 이용해 최종 소비자에게 컴퓨터를 판매합니다. 또한, 저희는 반도체 제조 공정 전반에 대한 개괄적인 정보를 제공합니다.
실제로 반도체 제조 공정은 수백 가지의 다양한 단계를 거칩니다. 하지만 이것은 아주 개략적인 설명으로, 기본적으로 실리콘 웨이퍼부터 시작합니다. 예를 들어 시소닉(Seosaic) 같은 회사는 실리콘을 만들고 웨이퍼로 자른 다음 인텔에 공급합니다. 그러면 인텔은 웨이퍼를 이용해 여러 단계를 거쳐 칩을 만듭니다.
첫 번째 단계는 산화 공정입니다. 기본적으로 웨이퍼 표면에 이산화규소 층을 형성하는 과정입니다. 그다음 광식각 공정을 통해 감광성 화학물질을 이용하여 웨이퍼에 회로 설계를 형성합니다. 이후 블로우 바이 에칭 공정을 통해 불필요한 물질을 제거하여 원하는 패턴을 만듭니다. 마지막으로 도핑 공정을 통해 실리콘의 전자적 특성을 변화시키기 위해 불순물을 도입하고, 마지막으로 증착 공정을 진행합니다.
실제로 우리는 다양한 기술을 통해 웨이퍼에 재료 층을 추가합니다. 예를 들어, 층 위에 또 다른 층을 얹는 식이죠. 그 후 전자 다이 선별 및 테스트를 진행합니다. 하지만 오늘 연구는 이 테스트 과정에 초점을 맞출 것입니다.
다음 슬라이드에서는 테스트 프로세스를 어떻게 진행하는지에 대한 자세한 내용을 보여드리겠습니다.
존, 감사합니다. 반도체 제조 공정에 대한 개요를 설명해 주셔서 감사합니다. 존이 설명해 주신 것처럼 반도체 제조 공정은 여러 단계로 이루어져 있습니다. 테스트는 다이의 기술적 완성도를 검증하는 핵심 단계입니다. 이 단계에서는 이전의 모든 제조 단계가 집적 회로 또는 다이 설계 시 요구 사항을 충족하는지 여부를 확인합니다.
반도체 테스트는 크게 세 단계로 나뉩니다. 첫 번째는 전기 다이 테스트입니다. 이 단계에서는 다이를 절단하지 않은 상태에서 웨이퍼 상에서 테스트합니다. 이 그림에 보이는 것과 같은 웨이퍼 프로브를 사용하여 다이의 내부 노드를 측정하고 전압, 전원 공급 전류, 누설 전류 등을 측정합니다.
전기 다이 분류 테스트를 통과한 유닛은 웨이퍼에서 잘게 잘라 패키징되며, 패키징된 유닛은 컴퓨터 마더보드에서 본 적이 있는 대부분의 사람들에게 익숙한 검은색 부품, 즉 집적 회로와 비슷하게 생겼습니다.
이제 모든 제품이 패키징되어 수백만 개의 테스트 패턴을 사용하여 기능 및 성능 테스트를 거칩니다. 만약 어떤 제품이라도 이러한 테스트 패턴 중 하나라도 통과하지 못하면 폐기됩니다. 성능 테스트를 통과하지 못하거나 특정 등급의 성능 기준을 충족하지 못하면, 더 낮은 등급으로 분류되어 성능 저하 테스트를 거칩니다. 그마저도 통과하지 못하면 더 낮은 등급으로 분류되어 테스트를 반복합니다. 가장 낮은 등급의 성능 기준조차 충족하지 못하면 폐기되는 식으로 계속 진행됩니다.
제조 테스트 흐름의 두 번째 주요 단계는 클래스 테스트 또는 패키지 테스트라고 합니다. 패키지 테스트 단계 다음에는 테스트 스티어링이라는 단계가 있습니다. 이 단계에서는 오프라인 툴이 부품을 세 개 이상의 레인 중 하나로 유도하여 금형을 최종 시스템 레벨 테스트라고 하는 테스트를 진행합니다.
이것은 테스트 소켓, 또는 가장 비싼 테스트 소켓으로, 패키징된 다이스를 마더보드에 장착하여 고수준의 응용 프로그램과 유사한 테스트를 수행하는 곳입니다.
여기에는 윈도우 운영체제 부팅이나 리눅스 부팅, 크롬 브라우저와 같은 고수준 응용 프로그램, 심지어 마더보드에 장착된 후 해당 부품에서 실행되는 JMP와 같은 응용 프로그램까지 포함됩니다. 이는 최종 컴퓨터 사용자가 사용하는 환경과 최대한 유사하게 만들기 위한 것입니다. 만약 해당 부품이 이러한 시스템 수준 테스트, 즉 최종 시스템 수준 테스트를 통과하면 인텔의 고객 또는 반도체 제조업체의 고객에게 출하됩니다.
왜 VLSI 테스트나 집적 회로 테스트가 필요할까요? 테스트는 기능 보증에 매우 중요하기 때문입니다. 제조되는 모든 다이에는 필연적으로 결함이 발생할 가능성이 있습니다. 모든 제조 단계에서 결함이 생길 수 있으며, 이러한 제조 단계를 거친 후에는 테스트 단계를 통해 결함 있는 부품을 걸러내야 합니다.
결함이 있는 부품은 많은 경우 금형이 설계된 기능에 부합하지 않으며, 어떤 경우에는 금형이 설계된 성능 요구 사항을 충족하지 못합니다.
테스트가 중요한 역할을 하는 부분은 기능 보증뿐만 아니라 성능 보증에도 있습니다. 이러한 결함 탐지 및 기능 보증을 통해 수율 학습, 즉 제조 공정 개선에도 도움이 됩니다. 테스트 과정을 통해 발견된 추가적인 결함 발생 지점을 활용하여 제조 공정을 개선할 수 있으며, 예를 들어 포토리소그래피나 에칭 공정을 변경하여 제조 공정을 제어함으로써 결함 발생을 방지할 수 있습니다.
이는 매출을 극대화하고 비용을 절감하여 순이익을 높이는 데 매우 중요합니다. 생산량 개선이 조금이라도 이루어지면 제조업체는 상당한 비용 절감 효과를 얻을 수 있기 때문입니다.
반도체 테스트 또는 VLSI 테스트의 어려움은 무엇일까요? VLSI는 Very Large Scale Integrated Circuit의 약자로, 최신 마이크로프로세서에는 100억 개 이상의 트랜지스터가 집적되어 있기 때문입니다.
오른쪽에는 현대 마이크로프로세서의 작은 클립아트가 있는데, 개별 트랜지스터의 크기는 나노미터 단위로 매우 작습니다. 마치 트랜지스터 1,000개 또는 머리카락 한 가닥의 1,000개가 그 안에 들어가는 것과 같습니다.
테스트 비용이 높고 시간이 많이 소요되는 이유는 각 트랜지스터를 개별적으로 테스트해야 하기 때문입니다. 이러한 설계에서 모든 트랜지스터를 개별적으로 테스트하려면 얼마나 많은 테스트 패턴이 필요할지 상상해 보십시오. 결과적으로 방대한 양의 테스트 데이터가 생성되고, 이 데이터를 분석하여 불량 트랜지스터의 위치를 진단하고, 양품 여부를 확인하고, 다이가 최고 등급을 충족하는지 아니면 하위 등급으로 분류되어야 하는지를 판단하는 데 상당한 시간이 소요됩니다.
앞서 설명드린 내용을 바탕으로 VLSI 테스트에서 예측 모델링의 역할을 이제 구체적으로 생각해 볼 수 있습니다. 예측 모델링을 통해 막대한 비용을 절감할 수 있을 뿐 아니라, 방대한 데이터 세트에서 유용한 실행 가능한 인사이트를 도출할 수 있습니다. 또한, 이러한 예측 모델링 기법은 최소한의 테스트 패턴만으로 잠재적인 문제를 식별하여 결함을 조기에 발견하는 데 활용될 수 있습니다.
예측 모델링은 최종 테스트 단계까지 기다리는 대신, 적은 수의 테스트만으로 어떤 다이가 통과하거나 실패할 가능성이 높은지 예측함으로써 상당한 비용과 테스트 시간을 절감하는 데 사용할 수 있습니다. 또한, 예측 모델링을 통해 특정 테스트 단계를 완전히 제거할 수도 있습니다. 본 사례 연구에서는 테스트 담당자가 다이를 여러 레인 중 하나로 분류하여 최종 시스템 테스트를 진행하는 테스트 스티어링 단계를 없앨 것입니다.
예측 모델링은 상관관계가 높은 특정 테스트 단계를 완전히 제거하는 데 효과적이고 의도적으로 활용될 수 있습니다. 예측 모델링을 통해 얻을 수 있는 개선 효과는 수율 향상 및 품질 개선 측면에서 매우 큽니다. 따라서 본 사례 연구에서는 JMP와 JMP로 학습된 신경망 기반 모델을 사용하여 테스트 스티어링 단계라는 테스트 단계를 제거하는 방법을 살펴보겠습니다.
기억하시겠지만, 분류에서 등급 분류, 등급 분류에서 SLT에 이르는 세 가지 테스트 단계 모두에서 중간 테스트 청문회 단계가 있으며, 이 단계에서 오프라인 측정을 통해 부품이 여러 최종 시스템 레벨 테스트 레인 중 하나로 분류됩니다.
본 사례 연구에서는 세 개의 테스트 레인(TT1~TT3)을 사용합니다. 각 레인의 테스트 시간은 TT1부터 TT3까지로 구분되며, TT1은 가장 긴 테스트 레인으로 성능이 가장 좋은 유닛을, TT3은 가장 짧은 테스트 레인으로 성능이 가장 나쁜 유닛을 대상으로 합니다. 본 연구의 목표는 오프라인 측정 도구로 측정한 XC2 값을 사용하는 대신, JMP를 이용한 예측 모델링을 통해 각 다이를 이러한 테스트 레인 중 하나로 배정하는 것입니다.
우리는 정렬 및 클래스 테스트 단계에서 이미 수행된 인라인 측정값을 사용하여 개별 다이가 어떤 테스트 레인을 거쳐야 하는지 예측하려고 합니다. 데이터 세트에는 13,186개의 테스트 유닛이 있습니다. 이 13,186개 유닛 각각에는 현장에서 측정된 16개의 센서 신호가 있습니다. 이 신호 중 5개는 범주형이고 11개는 수치 입력이며, 출력은 TT1부터 TT3까지 세 가지 범주형 값 중 하나입니다.
보시다시피, 분포는 상당히 편중되어 있으며, TT3가 단위 중에서 가장 많고 TT1은 약 564~10,488개로 가장 적습니다.
X1부터 X5까지는 범주형 입력값입니다. 이 값들은 최소 2단계에서 최대 22단계까지 다양한 범주 범위를 포함합니다. X6부터 X16까지의 수치형 입력값은 상당히 다양한 분포를 보입니다. X6의 경우, 0.01에서 최대 1.5까지의 매우 작은 범위를 가지고 있습니다. X14의 경우에는 0에서 2,500 이상까지 가장 넓은 범위를 나타냅니다. 따라서 입력값의 분포가 상당히 다양합니다.
본 연구에서는 JMP를 사용하여 현장에서 수집한 16개의 입력 신호를 이용해 세 가지 범주형 값 중 하나를 예측하는 신경망 기반 기준 모델을 구축하는 과정을 살펴볼 것입니다. JMP에서 모델 구축을 시작하기 위해, 분류 정확도에 대한 유용한 통찰력을 제공할 수 있는 가장 간단한 신경망 모델부터 시작할 것입니다.
먼저 뉴런 3개를 가진 단일 레이어 신경망으로 시작하겠습니다. 5겹 교차 검증을 사용하고, 학습률은 0.1로 설정합니다. 부스팅은 사용하지 않으므로 추가 모델 수는 0으로 설정됩니다. 또한, 탐색 횟수는 1회로 설정하여 수렴 후 역전파를 통한 추가 학습을 수행하지 않습니다.
각 뉴런에 대해 활성화 함수를 쌍곡선 탄젠트(Tanh)로 설정하겠습니다. 이제 JMP를 사용하여 모델 구축 과정을 직접 시연해 보겠습니다. 여기에 데이터 테이블이 있습니다. 네, 데이터 테이블을 여기에 공유하겠습니다.
네, 여기 데이터 테이블이 있습니다. 보시는 것은 X1부터 X16까지의 입력값과 테스트 시간 평면(TT1~TT3 세 가지 중 하나)입니다. 이제 예측 모델링을 시작해 보겠습니다. 분석 드롭다운 메뉴에서 예측 모델링을 선택하고 신경망 학습을 시작합니다.
X 요인, 즉 입력값으로는 X1부터 X16까지를 사용하겠습니다. Y 응답값으로는 TT Lane을 사용하겠습니다. 확인을 누르세요. 그러면 신경망 학습 메뉴가 나타납니다. 이 메뉴에서 K겹 교차 검증을 사용하겠습니다. 앞서 말씀드린 대로 폴드 수는 5개로 설정하겠습니다.
난수 생성을 위한 시드 값으로는 슬라이드에서 사용했던 일정한 숫자를 사용하겠습니다. 첫 번째 레이어에는 뉴런 세 개를 배치합니다. 이것이 기본 모델입니다. 두 번째 레이어에는 뉴런을 배치하지 않습니다. 활성화 함수로는 tanh 쌍곡선 함수를 사용하겠습니다.
기본적으로 시그모이드 함수입니다. 부스팅은 사용하지 않겠습니다. 모델 개수는 0으로, 학습률은 0.1로 설정하겠습니다. 이제 '시작' 버튼을 눌러 학습을 시작합니다. 모델이 구축되고 학습되는 동안, 놀랍게도 간단한 모델이 생성됩니다. 모델 구축이 빠르게 완료되었네요. 보시다시피, 13,000개의 유닛으로 구성된 데이터셋에 단 3개의 뉴런만 사용했는데도 상당히 괜찮은 일반화 R-제곱 값을 보여줍니다.
K폴드를 5로 설정했기 때문에 전체 데이터 세트 중 80%는 학습에, 20%는 검증에 사용되었습니다. 그 결과, R-제곱 값이 학습 데이터 세트에서 92.9%, 검증 데이터 세트에서 93%로 높게 나타났습니다. 이는 일부 오분류가 발생했음을 의미합니다. 혼동 행렬을 보면 y축에는 실제 TT 레인(정답)이, x축에는 예측된 레인이 표시됩니다.
이 데이터 세트에서 약 20%의 오분류율이 발생했는데, 이는 가장 높은 오분류율로, 신경망 모델이 TT1을 TT2로 잘못 예측한 경우가 20%에 달합니다. 이상적으로는 15% 이하의 오분류율이 좋지만, 20% 이하도 허용 가능한 수준입니다. 앞으로 오분류율을 지속적으로 개선할 수 있는 방법을 보여드리겠습니다.
이제 여기에 신경망 다이어그램을 그려 보겠습니다. 보시다시피, 16개의 입력이 있습니다. 첫 번째 레이어에는 세 개의 뉴런이 지정되어 있습니다. 각 뉴런은 tanh 쌍곡선 활성화 함수를 사용하고 TT Lane을 출력으로 합니다. 이제 모델의 복잡성을 높여 보겠습니다. 앞서 말씀드린 것처럼 이것은 기본 모델입니다. 이제 오분류율을 개선할 수 있도록 모델을 더 복잡하게 만들어 보겠습니다.
첫 번째 단계에서는 뉴런이 3개였고, 두 번째 단계에서는 뉴런이 없었습니다. 이제 뉴런 수를 2개로 늘릴 것입니다. 부스팅은 여전히 사용하지 않고 학습률도 동일하게 유지합니다. 학습률은 정확도를 희생하더라도 수렴 속도를 원하는 대로 조절할 수 있습니다.
학습률을 높이면 전역 최소값이 아닌 지역 최소값에 수렴할 가능성이 있습니다. 수렴 속도는 빨라지지만, 전역 최소값이 아닌 지역 최소값에 빠질 위험이 있습니다. 페널티 방법은 여러 가지가 있지만, 여기서는 최소 평균 제곱 오차의 제곱을 사용하겠습니다. 탐색 횟수는 1회로 설정합니다.
모델이 구축됨에 따라 기준 모델의 R-제곱 값이 0.92에서 0.93 사이로 이미 향상된 것을 확인할 수 있습니다. 3x2 모델의 R-제곱 값도 개선되었습니다. 오분류율 또한 0.2에서 0.18 사이, 즉 약 18% 감소했습니다. 다이어그램을 살펴보면, 첫 번째 단계에 3개의 뉴런, 두 번째 단계에 2개의 뉴런이 있는 두 단계로 구성되어 있습니다.
이제 모델 복잡성을 좀 더 높여서 오분류율에 어떤 변화가 생기는지 살펴보겠습니다. 모델 복잡성을 높일 때 주의해야 할 점은 데이터에 과적합되어 일반성을 잃을 위험이 있다는 것입니다. 13,000개 유닛 수준에서 어떤 매개변수가 이러한 결과를 초래하는지 살펴보겠습니다.
보시다시피, 모델 구축에 사용되는 뉴런 수를 늘릴수록 학습 기간이 길어집니다. 아래는 증가된 모델 복잡성에 대한 일반화된 R-제곱 값입니다. 보시다시피, 단순히 모델 매개변수를 늘린다고 해서 정확도가 항상 향상되는 것은 아닙니다. 앞서 언급했듯이 과적합의 위험이 있기 때문입니다.
보시다시피 R-제곱 값은 0.937과 0.936으로, 3x2 네트워크보다 약간 높지만 큰 차이는 없습니다. 또한, 복잡성이 증가함에 따라 오분류율이 오히려 약간 감소한 것을 확인할 수 있습니다. 도표를 그려보면, 첫 번째 단계에는 뉴런이 5개, 두 번째 단계에는 7개 있습니다.
모델 복잡성이 증가한다고 해서 항상 오분류율이 개선되는 것은 아닙니다. 바로 이럴 때 부스팅과 같은 지능형 튜닝 기법이나 모델 매개변수와 부스팅을 조합하여 정확도를 높일 수 있습니다. 이제 특정 정확도와 오분류율을 달성했을 때 입력 모델의 복잡성을 어떻게 줄일 수 있는지 살펴보겠습니다.
현재 16개의 입력 변수를 사용하고 있습니다. 이 경우, 동일한 정확도를 유지하면서 입력 변수의 개수를 줄이려면 어떻게 해야 할까요? 앞서 언급했듯이, 모델의 복잡성은 증가했지만 오분류 정확도는 약간 떨어졌습니다. 입력 변수의 개수를 줄여 모델의 과적합 문제를 어떻게 해결할 수 있을까요? 바로 이 부분에서 JMP가 유용하게 사용될 수 있습니다. JMP에서 제공하는 다변량 주성분 분석 기능을 활용하여 입력 변수 개수가 더 적은 모델을 구축할 수 있습니다.
이제 입력 데이터 세트에서 주성분을 선택하고, 오류가 최소화되는 데 필요한 주성분 개수를 고르겠습니다. 보시다시피 입력값은 X1부터 X16까지입니다. 주성분 분석에서는 JMP가 숫자형 데이터만 분석할 수 있기 때문에 숫자형 입력값만 선택합니다.
보시다시피, 데이터 세트의 주성분은 11개입니다. 하지만 각 주성분이 증가할수록 설명되는 입력 분산은 줄어듭니다. 스크리 플롯을 그려서 PCA의 변곡점을 확인할 수 있는데, 보시다시피 변곡점은 대략 두 번째 주성분에서 발생합니다. 즉, 분산의 상당 부분이 단 두 개의 주성분에 의해 설명됩니다.
이제 고유값의 증분 누적 분포 함수(CDF)가 어떻게 되는지 그래프로 그려보겠습니다. 보시다시피, 단 6개의 고유 벡터, 즉 6개의 주성분만으로 입력 분산의 약 90%를 설명할 수 있습니다. 이제 이 6개의 주성분에 범주형 입력값을 추가하여 신경망을 훈련시켜 보겠습니다. 기억하시겠지만, 주성분 분석 도구를 실행할 때 JMP는 PCA에 범주형 입력값은 허용하지 않고 숫자형 입력값만 허용합니다.
우리의 신경망에는 범주형 데이터를 추가하고, 우리가 선택한 주성분을 이용하여 신경망을 구축해야 합니다. 이제 앞서 분석했던 데이터 표로 돌아가 보겠습니다. 저는 이 분석에서 얻은 주성분들을 저장해 두었습니다. 이제 이 주성분들을 선택하고, 신경망 모델을 다시 구축해 보겠습니다.
저는 생성된 6개의 주성분을 가지고 있습니다. 이들을 입력값으로 저장하고, 여기에 X1-X5를 다른 입력값으로 추가합니다. TT Lane을 Y 응답 또는 출력값으로 사용하고 싶습니다. 동일한 K겹 교차 검증 방식과 난수 시드를 사용합니다. 첫 번째 레이어에는 뉴런 3개, 두 번째 레이어에는 뉴런 2개를 사용합니다.
우리가 사용할 증분 모델의 수는 처음에는 부스팅을 적용하지 않고 0으로 설정하겠습니다. 그 다음에는 부스팅을 적용하여 살펴보겠습니다. 이제 시작해 보겠습니다. 보시다시피 저는 동일한 폴드 수, 즉 데이터의 20%를 검증에, 80%를 훈련에 사용하고 있습니다.
자, 준비되셨나요? 모든 16개 변수를 사용했을 때와 거의 동일한 정확도를 달성했음을 알 수 있습니다. 먼저 확인해야 할 것은 이제 입력값이 11개, 즉 6개의 주성분과 5개의 범주만 남았다는 점입니다. 신경망, 즉 3x2 신경망을 사용했습니다. 오분류율은 양호한 수준입니다. 모든 11개 입력값을 사용하고 더 복잡한 5x7 신경망을 사용했을 때와 거의 동일한 결과입니다.
이제 어떻게 진행할까요? 모델의 뉴런 수를 늘려서 오분류율을 개선하는 데 어떤 도움이 되는지 살펴보겠습니다. 모델의 복잡성이 증가함에 따라 학습 시간이 길어집니다. 부스팅을 도입하면 학습 시간이 훨씬 더 오래 걸린다는 것을 알 수 있을 겁니다.
보시다시피 7x5 네트워크에서 정확도가 향상되었는데, 이는 입력값을 줄였기 때문입니다. 직관과는 반대되는 결과이지만, 모델의 복잡성을 조절하는 과정에서 입력값을 줄이는 것이 오히려 정확도를 높이는 경우가 있습니다.
이것이 바로 여기서 얻을 수 있는 중요한 통찰력입니다. 이제 여기서 더 나아가 살펴보겠습니다. 다이어그램을 보면, 앞서 말했듯이 6개의 주요 구성 요소와 5개의 범주형 입력이 있습니다. 모델의 복잡성은 7배 증가했습니다.
자, 이제 부스팅을 해봅시다. 부스팅을 돕는 방법을 알아보겠습니다. JMP에 대해 기억해야 할 한 가지는 부스팅이 첫 번째 레이어에서만 작동한다는 것입니다. 즉, JMP는 두 번째 레이어에 지정된 뉴런의 개수를 무시합니다. 부스팅에는 첫 번째 레이어의 뉴런만 사용됩니다.
이제 첫 번째 레이어에는 뉴런이 없고, 부스팅 비율은 5이며, 첫 번째 레이어의 뉴런 수는 3개가 됩니다. 부스팅은 수렴 후 예측값과 입력값 사이의 오차를 최소화하는 것을 의미합니다. 모델의 부스팅 비율이 증가할수록 목표 예측값과 실제값 사이의 오차율이 최소화됩니다. 이 경우 총 뉴런 수는 15개가 됩니다.
이제 여기서부터 부스팅을 시연해 보겠습니다. 모델은 여기서 선택한 모델 수만큼 스케일링됩니다. 이 경우 5라는 스케일링 인자가 첫 번째 단계에서 뉴런 수를 조정하는 데 사용됩니다. 결과적으로 모델은 15개의 뉴런을 가지게 되며, 이는 훈련 데이터 세트에 대해 5겹 교차 검증을 거친 것입니다. 이제 적합된 모델을 확인해 보겠습니다. 마지막으로 발표를 마무리하겠습니다.
앞서 언급했듯이 부스팅을 사용하면 학습 시간이 더 오래 걸립니다. 보시다시피, 부스팅을 적용한 단일 레이어 모델이기 때문에 R-제곱 값이 5x7 네트워크에 비해 낮아졌지만, 처음에 구축했던 기준 모델보다는 좋습니다. 기준 모델과 5겹 교차 검증 결과를 비교한 내용은 여기에서 확인할 수 있습니다.
보시다시피 부스팅 모델은 여기에서 확인할 수 있습니다. 이는 부스팅 모델과 기준 모델을 비교한 것입니다. 정확도 또한 여기에서 확인할 수 있습니다. 부스팅 모델과 기준 모델의 성능이 매우 유사합니다.
이제 발표를 마무리하겠습니다. 슬라이드로 돌아가 볼까요? 네, 슬라이드입니다. 보시다시피, 우리는 기본 모델을 학습시켰습니다. 그런 다음 PCA를 통해 입력 데이터의 복잡성을 줄였습니다. 6개의 주성분을 선택하고, 범주형 변수 X1-X5를 추가하여 신경망을 학습시켰습니다.
입력값을 줄임으로써 정확도가 향상되었습니다. 이는 모델 복잡성이 증가한다고 해서 반드시 모델 정확도가 향상되는 것은 아니라는 핵심적인 통찰입니다. 입력값의 복잡성을 줄이면 정확도 향상에 도움이 될 수 있습니다. 그런 다음 스크리 플롯을 보여드렸는데, 여기서 우리는 학습을 위해 6개의 뉴런, 즉 6개의 기저 벡터를 주성분 분석에 사용했습니다.
이것은 오늘 다루지 않았던 또 다른 예시로, 범주형 입력값만 있는 경우입니다. 보시다시피 정확도가 상당히 떨어졌는데, 이는 입력값의 복잡성을 무한정 줄여도 모델의 정확도가 떨어지지 않는다는 것을 의미합니다.
다음으로 부스팅 단계를 5로 선택했습니다. 이 경우 부스팅 값은 2이고 뉴런은 3개입니다. 보시다시피 부스팅 값을 2에서 5로 높이면 오분류율과 R-제곱 값이 향상됩니다.
우리는 이러한 네트워크들을 서로 비교할 수 있습니다. 이 경우, 우리는 여러 모델을 구축했지만, 최종적으로 사용한 세 가지 주요 모델만 비교하겠습니다. 우리의 경우, 6개의 주성분과 5개의 입력값을 가진, 부스팅 계수 5를 적용한 간단한 2층 신경망만으로도 우리가 원하는 정확도 기준을 충족했습니다.
각 경우에 대해 애플리케이션에 필요한 정확도 요구 사항을 검토해야 합니다. 그런 다음 학습 매개변수, 모델 복잡성 및 입력 복잡성을 모두 실험해 보고 신중하게 모델을 선택하십시오. 오늘 발표에서는 목표 애플리케이션, 즉 집적 회로용 적응형 테스트 제어에 신경망 모델을 JMP에서 사용하는 방법을 살펴보았습니다.
우리는 다양한 예측 모델을 검토했습니다. 단순 신경망, 주성분 분석을 적용한 신경망, 주성분 분석과 부스팅을 결합한 신경망을 살펴보았습니다. 필요한 추가 리소스 측면에서 개선 사항을 입증했습니다.
이 사례에서는 특정 클래스 테스트 단계에서 이미 수행된 C2 내 측정값을 활용하여 시스템 레벨 테스트 레인을 예측함으로써, 기기당 최대 10만 달러에 달할 수 있는 XC2 측정 도구를 제거할 수 있었습니다. 이처럼 간단한 2계층 신경망을 통해 테스트 비용을 절감할 수 있었습니다.
한 가지 말씀드리고 싶은 점은 JMP의 사용자 인터페이스에서는 2계층 신경망만 학습시킬 수 있지만, JSL을 사용하면 신경망의 복잡성을 확장하여 더 깊은 신경망을 구축할 수 있다는 것입니다. 이는 대규모 데이터 세트를 사용하는 고급 애플리케이션에 필요할 수 있습니다. 이것으로 오늘 발표를 마치겠습니다. 들어주셔서 감사합니다.