KR20230112438A - 패턴 클러스터링을 위한 방법 및 시스템 - Google Patents
패턴 클러스터링을 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20230112438A KR20230112438A KR1020220008692A KR20220008692A KR20230112438A KR 20230112438 A KR20230112438 A KR 20230112438A KR 1020220008692 A KR1020220008692 A KR 1020220008692A KR 20220008692 A KR20220008692 A KR 20220008692A KR 20230112438 A KR20230112438 A KR 20230112438A
- Authority
- KR
- South Korea
- Prior art keywords
- pattern
- latent
- content
- model
- pose
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000009466 transformation Effects 0.000 claims description 40
- 238000009826 distribution Methods 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 43
- 238000010586 diagram Methods 0.000 description 20
- 230000015654 memory Effects 0.000 description 19
- 239000011159 matrix material Substances 0.000 description 16
- 238000013473 artificial intelligence Methods 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000000844 transformation Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 102100034032 Cytohesin-3 Human genes 0.000 description 3
- 101710160297 Cytohesin-3 Proteins 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/55—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/755—Deformable models or variational models, e.g. snakes or active contours
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
- G06V10/763—Non-hierarchical techniques, e.g. based on statistics of modelling distributions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30148—Semiconductor; IC; Wafer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition of objects for industrial automation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Architecture (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
- Quality & Reliability (AREA)
Abstract
집적 회로의 패턴들을 클러스터링하기 위한 방법은, 제1 패턴에 대응하는 제1 이미지를 복수의 샘플 이미지들에 의해서 트레이닝된 제1 모델에 제공하는 단계, 제1 모델로부터, 제1 콘텐트(content) 잠재 변수 및 제1 포즈(pose) 잠재 변수를 획득하는 단계, 및 유클리드(Euclidean) 거리에 기초하여, 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 복수의 클러스터들로 그룹핑하는 단계를 포함할 수 있고, 제1 포즈 잠재 변수는, 제1 콘텐트 잠재 변수가 포함되는 제1 클러스터의 대표 패턴에 대한 제1 패턴의 유클리드 변환을 나타낼 수 있다.
Description
본 개시의 기술적 사상은 집적 회로의 모델링에 관한 것으로서, 자세하게는 패턴 클러스터링을 위한 방법 및 시스템에 관한 것이다.
집적 회로에 포함되는 패턴들을 사전에 분석하고 검증하는 것은, 집적 회로의 개발 기간을 단축할 수 있고, 집적 회로의 신뢰도를 향상시킬 수 있다. 반도체 공정이 발달함에 따라, 집적 회로는 무수히 많은 패턴들을 포함할 수 있고, 패턴들의 종류 역시 현저하게 다양해질 수 있다. 이에 따라, 집적 회로에 포함되는 패턴들 전부를 분석하거나 검증하는 것은 현실적으로 불가능할 수 있고, 패턴들을 효율적이고 정확하게 검증하는 방법이 요구될 수 있다.
본 개시의 기술적 사상은, 집적 회로에 포함되는 패턴들을 클러스터링함으로써 패턴들에 대한 효율적인 검증을 제공하는 방법 및 시스템을 제공한다.
본 개시의 기술적 사상의 일측면에 따른 집적 회로의 패턴들을 클러스터링하기 위한 방법은, 제1 패턴에 대응하는 제1 이미지를 복수의 샘플 이미지들에 의해서 트레이닝된 제1 모델에 제공하는 단계, 제1 모델로부터, 제1 콘텐트(content) 잠재 변수 및 제1 포즈(pose) 잠재 변수를 획득하는 단계, 및 유클리드(Euclidean) 거리에 기초하여, 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 복수의 클러스터들로 그룹핑하는 단계를 포함할 수 있고, 제1 포즈 잠재 변수는, 제1 콘텐트 잠재 변수가 포함되는 제1 클러스터의 대표 패턴에 대한 제1 패턴의 유클리드 변환을 나타낼 수 있다.
본 개시의 기술적 사상의 일측면에 따른 집적 회로의 패턴들을 클러스터링하기 위한 방법은, 제1 패턴에 대응하는 제1 이미지 및 제1 수치 데이터를, 복수의 샘플 이미지들 및 복수의 샘플 수치들에 의해서 트레이닝된 제1 모델에 제공하는 단계, 제1 모델로부터, 제1 콘텐트(content) 잠재 변수를 획득하는 단계, 및 유클리드(Euclidean) 거리에 기초하여, 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 복수의 클러스터들로 그룹핑하는 단계를 포함할 수 있고, 제1 수치 데이터는, 제1 패턴의 적어도 하나의 속성을 나타낼 수 있다.
본 개시의 기술적 사상의 일측면에 따른 집적 회로의 패턴들을 클러스터링하기 위한 방법은, 제1 패턴에 대응하는 제1 이미지 및 제1 수치 데이터를, 복수의 샘플 이미지들 및 복수의 샘플 수치들에 의해서 트레이닝된 제1 모델에 제공하는 단계, 제1 모델로부터, 제1 콘텐트(content) 잠재 변수를 획득하는 단계, 및 유클리드(Euclidean) 거리에 기초하여, 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 복수의 클러스터들로 그룹핑하는 단계를 포함할 수 있고, 제1 수치 데이터는, 제1 패턴의 적어도 하나의 속성을 나타낼 수 있다.
본 개시의 예시적 실시예에 따른 방법 및 시스템에 의하면, 집적 회로에 포함된 패턴들이 효과적으로 클러스터링될 수 있고, 패턴들의 클러스터들 각각은 고유한 속성을 가질 수 있다.
또한, 본 개시의 예시적 실시예에 따른 방법 및 시스템에 의하면, 클러스터들을 사용하여 패턴들이 분석될 수 있고, 이에 따라 패턴들이 효율적으로 검증될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 방법 및 시스템에 의하면, 클러스터로부터 원하는 속성의 패턴이 도출될 수 있고, 이에 따라 높은 신뢰도의 집적 회로의 설계가 달성될 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 설명으로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 도 1의 제1 모델의 예시를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 도 1의 좌표계 변환기의 예시를 나타내는 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 유클리드 변환의 예시들을 나타내는 도면이다.
도 6은 본 개시의 예시적 실시예에 따른 특징 추출 모듈을 나타내는 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 패턴 분석 모듈을 나타내는 블록도이다.
도 8a 내지 도 8d는 본 개시의 예시적 실시예들에 따른 잠재 공간 지도의 예시들을 나타내는 도면들이다.
도 9는 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나태는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나타내는 순서도이다.
도 12a 내지 도 12d는 본 개시의 예시적 실시예들에 따른 패턴 클러스터링을 위한 방법의 예시들을 나타내는 순서도들이다.
도 13은 본 개시의 예시적 실시예에 따른 컴퓨터 시스템을 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시예에 따른 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 도 1의 제1 모델의 예시를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 도 1의 좌표계 변환기의 예시를 나타내는 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 유클리드 변환의 예시들을 나타내는 도면이다.
도 6은 본 개시의 예시적 실시예에 따른 특징 추출 모듈을 나타내는 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 패턴 분석 모듈을 나타내는 블록도이다.
도 8a 내지 도 8d는 본 개시의 예시적 실시예들에 따른 잠재 공간 지도의 예시들을 나타내는 도면들이다.
도 9는 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나태는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나타내는 순서도이다.
도 12a 내지 도 12d는 본 개시의 예시적 실시예들에 따른 패턴 클러스터링을 위한 방법의 예시들을 나타내는 순서도들이다.
도 13은 본 개시의 예시적 실시예에 따른 컴퓨터 시스템을 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시예에 따른 시스템을 나타내는 블록도이다.
도 1은 본 개시의 예시적 실시예에 따른 패턴 클러스터링(10)을 나타내는 블록도이다. 패턴 클러스터링(10)은 패턴을 나타내는 입력 데이터로부터 패턴에 대응하는 잠재 변수를 생성하고, 복수의 패턴들에 대응하는 복수의 잠재 변수들을 그룹핑함으로써 잠재 변수들의 클러스터들, 즉 패턴들의 클러스터들을 생성 수 있다. 하나의 클러스터(또는 그룹)에 포함된 패턴들은 동일하거나 유사한 적어도 하나의 속성을 가질 수 있고, 이에 따라 집적 회로에 포함된 모든 패턴들이 분석되는 대신 패턴들의 클러스터들이 분석됨으로써, 집적 회로가 효율적으로 분석되고 검증될 수 있다. 본 명세서에서, 패턴은, 적어도 하나의 레이어에 형성된 적어도 하나의 구조체를 포함하는, 집적 회로의 레이아웃의 일부를 지칭할 수 있다. 도 1에 도시된 바와 같이, 패턴 클러스터링(10)은 제1 모델(11), 제2 모델(12), 좌표계 생성기(13), 좌표계 변환기(14) 및 클러스터 생성기(15)를 포함할 수 있다.
일부 실시예들에서, 도 1의 패턴 클러스터링(10)은, 도 13 및 도 14를 참조하여 후술되는 컴퓨팅 시스템에 의해서 구현될 수 있다. 예를 들면, 본 명세서의 도면들에 도시된 블록들 각각은 컴퓨팅 시스템에 포함된 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 대응할 수 있다. 일부 실시예들에서, 하드웨어는, CPU(central processing unit), DSP(digital signal processor), GPU(graphics processing unit)와 같은 프로그램가능(programmable) 컴포넌트, FPGA(field programmable gate array)와 같은 재구성가능(reconfigurable) 컴포넌트 및 IP(intellectual property) 블록과 같은 고정된 기능을 제공하는 컴포넌트 중 적어도 하나를 포함할 수 있다. 일부 실시예들에서, 소프트웨어는, 프로그램가능 컴포넌트에 의해서 실행가능한 일련의 명령어들 및 컴파일러 등에 의해서 일련의 명령어들로 변환가능한 코드 중 적어도 하나를 포함할 수 있고, 비일시적(non-transitory) 저장 매체에 저장될 수 있다.
반도체 공정이 발전함에 따라, 높은 집적도를 가지는 집적 회로의 패턴들을 전수 분석하는 것은 현실적으로 불가능할 수 있다. 이에 따라, 집적 회로에 포함된 패턴들을 클러스터링(또는 그룹핑)하고, 클러스터들(또는 그룹들)을 구별하는 속성들, 하나의 클러스터에 포함되는 패턴들에서 검출되는 속성의 분산이나 경향 등에 기초하여 집적 회로가 분석될 수 있다. 패턴들의 클러스터링을 위하여, 패턴들 사이 거리 또는 유사도가 정의될 수 있고, 짧은 거리 또는 높은 유사도를 가지는 패턴들이 하나의 클러스터에 포함될 수 있다. 즉, 잠재 공간에서 서로 가까운 잠재 변수들에 대응하는 패턴들은 유사한 속성들을 가질 수 있다. 도면들을 참조하여 후술되는 바와 같이, 패턴 클러스터링(10)은, 하나의 패턴을 잠재 공간(latent space)(또는 표현 공간(representation space))의 하나의 지점, 즉 하나의 잠재 변수에 맵핑할 수 있고, 잠재 공간에서 낮은 유클리드 거리(Euclidean distance)를 갖는 패턴들을 하나의 클러스터로 그룹핑할 수 있다. 이에 따라, 집적 회로에 포함된 패턴들이 효과적으로 클러스터링될 수 있고, 클러스터들 각각은 고유한 속성들을 가질 수 있다. 또한, 클러스터들에 기초하여 패턴들이 용이하게 분석될 수 있고, 이에 따라 집적 회로는 효율적으로 검증될 수 있다.
도 1을 참조하면, 잠재 변수를 도출하기 위하여 사용되는 입력 데이터는, 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)를 포함할 수 있다. 패턴 이미지(xpattern)는 집적 회로의 레이아웃에서 패턴을 포함하는 영역을 나타낼 수 있고, 본 명세서에서 이미지로 단순하게 지칭될 수 있다. 예를 들면, 집적 회로의 레이아웃을 정의하는 데이터에서 분석이 요구되는 적어도 하나의 레이어가 추출될 수 있고, 추출된 적어도 하나의 레이어를 미리 정의된 크기의 윈도우에 따라 분할함으로써 패턴 이미지(xpattern)가 획득될 수 있다. 이에 따라, 패턴 이미지(xpattern)는 2차원의 기하학적(geometric) 정보를 포함할 수 있다. 일부 실시예들에서, 패턴이 복수의 레이어들에 형성된 구조체들을 포함하는 경우, 패턴 이미지(xpattern)는 복수의 2차원 어레이들로 구성될 수 있고, 2차원 어레이들 각각은 하나의 레이어에 대응할 수 있다. 예를 들면, 2차원 어레이가 50x50 픽셀들로 구성된 경우, 패턴 이미지(xpattern)는 50x50x(layer 수)의 크기를 가질 수 있다.
수치 데이터(xnumeric)는 패턴 이미지(xpattern)에 포함되지 아니하는, 패턴에 대한 정보를 나타낼 수 있다. 패턴은 2차원 이미지로 표현되지 아니하는 다양한 속성들을 가질 수 있고, 수치 데이터(xnumeric)는 이러한 속성들을 나타낼 수 있다. 예를 들면, 수치 데이터(xnumeric)는, 레이어의 수직 방향(또는 적층 방향)과 관련된 정보(예컨대, 두께, 각도 등), 레이어를 구성하는 물질에 대한 정보 등을 포함할 수 있다. 패턴 이미지(xpattern)뿐만 아니라 수치 데이터(xnumeric)가 사용됨으로써, 입력 데이터는 패턴을 보다 정확하게 정의할 수 있다.
도 1에 도시된 바와 같이, 제1 모델(11)은 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)를 수신할 수 있고, 콘텐트 잠재 변수(zcontent) 및 포즈 잠재 변수(zpose)를 출력할 수 있다. 제1 모델(11)은, 복수의 샘플 이미지들 및 복수의 샘플 수치들에 의해서 트레이닝된 기계 학습 모델에 대응할 수 있고, 예컨대 심층신경망(deep neural network)일 수 있다. 일부 실시예들에서, 제1 모델(11)은 상호 독립적인 모델들을 포함할 수 있다. 예를 들면, 제1 모델(11)은, 패턴 이미지(xpattern)를 수신하고 제1 콘텐트 잠재 변수 및 포즈 잠재 변수(zpose)를 출력하도록 트레이닝된 모델 및 수치 데이터(xnumeric)를 수신하고 제2 콘텐트 잠재 변수를 출력하도록 트레이닝된 모델을 포함할 수 있다. 제1 모델(11)은, 제1 콘텐트 잠재 변수 및 제2 콘텐트 잠재 변수를 연산함으로써 콘텐트 잠재 변수(zcontent)를 생성할 수 있다. 예를 들면, 제1 모델(11)은, 제1 콘텐트 잠재 변수 및 제2 콘텐트 잠재 변수를 합산하거나, 승산하거나, 연접(concatenation)함으로써 콘텐트 잠재 변수(zcontent)를 생성할 수 있다. 제1 모델(11)의 예시가 도 3을 참조하여 후술될 것이다.
콘텐트 잠재 변수(zcontent)는 잠재 공간에서 하나의 지점에 대응할 수 있고, 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)에 의해서 정의되는 패턴의 속성들에 대응하는 값을 가질 수 있다. 예를 들면, 콘텐트 잠재 변수(zcontent)는 패턴에 포함되는 구조체의 형태, 모양, 면적 등에 대응하는 값을 가질 수 있다. 전술된 바와 같이, 유사한 속성들을 가지는 패턴들에 대응하는 콘텐트 잠재 변수들은 유사한 값을 가질 수 있고, 잠재 공간에서 서로 가깝게 위치할 수 있다.
포즈 잠재 변수(zpose)는 패턴의 유클리드 변환(Euclidean transform)에 대응하는 값을 가질 수 있다. 유클리드 변환은 강체 변환(rigid transform) 또는 좌표 변환으로 지칭될 수 있고, 지점들의 모든 쌍들 사이 유클리드 거리가 유지되는 기하학적 변환을 지칭할 수 있다. 예를 들면, 유클리드 변환은, 회전(rotation), 평행 이동(translation), 반사(reflection) 또는 이들 중 적어도 하나를 포함하는 시퀀스를 포함할 수 있다. 집적 회로의 레이아웃에서 제1 패턴으로부터 유클리드 변환된 제2 패턴은 제1 패턴과 동일하거나 유사한 속성들을 가질 수 있고, 이에 따라 유클리드 변환 관계의 패턴들은 하나의 클러스터로 그룹핑되는 것이 적합할 수 있다. 제1 모델(11)은 콘텐트 잠재 변수(zcontent)뿐만 아니라 포즈 잠재 변수(zpose)를 출력할 수 있고, 이에 따라 유클리드 변환에 관한 정보가 잠재 공간의 콘텐트 잠재 변수(zcontent)로부터 분리될 수 있다. 일부 실시예들에서, 도 5를 참조하여 후술되는 바와 같이, 포즈 잠재 변수(zpose)는 이산(discrete) 유클리드 변환들을 확률적으로 나타낼 수 있다. 일부 실시예들에서, 포즈 잠재 변수(zpose)는 연속적인 확률 분포에 의해서 연속(continuous) 유클리드 변환들을 확률적으로 나타낼 수도 있다.
본 명세서에서, 기계 학습 모델은 샘플 데이터 또는 트레이닝 데이터로 트레이닝 가능한 임의의 구조를 가질 수 있다. 예를 들면, 기계 학습 모델은, 인공 신경망(artificial neural network), 결정 트리(decision tree), 서포트 벡터 머신(support vector machine), 베이즈 네트워크(Bayesian network) 및/또는 유전 알고리즘(genetic algorithm) 등을 포함할 수 있다. 이하에서, 기계 학습 모델은 인공 신경망을 주로 참조하여 설명될 것이나, 본 개시의 예시적 실시예들이 이에 제한되지 아니하는 점이 유의된다. 인공 신경망은, 비제한적인 예시로서, CNN(Convolution Neural Network), R-CNN(Region based Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based Deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzmann Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 등을 포함할 수 있다. 본 명세서에서, 기계 학습 모델은 단순하게 모델로 지칭될 수 있다.
좌표계 생성기(13)는 패턴을 위한 좌표계(coordinate)(xcord)를 생성할 수 있다. 패턴 이미지(xpattern)는 픽셀들을 포함할 수 있고, 좌표계(xcord)는 패턴에서 하나의 픽셀에 대응하는 크기를 결정할 수 있다. 일부 실시예들에서, 하나의 좌표는 하나의 픽셀에 대응할 수 있고, 상호 인접한 좌표들 사이 거리, 즉 픽셀 하나의 크기는 집적 회로를 제조하는 반도체 공정이 제공하는 선폭에 비례할 수 있다. 좌표계 생성기(13)는 패턴 이미지(xpattern)에 대응하는 좌표계(xcord)를 생성할 수 있고, 후술되는 바와 같이 좌표계(xcord)는 패턴의 크기 및 좌표 정보를 제공하는데 사용될 수 있다.
좌표계 변환기(14)는 포즈 잠재 변수(zpose) 및 좌표계(xcord)를 수신할 수 있고, 변환된 좌표계(zcord)를 생성할 수 있다. 전술된 바와 같이, 포즈 잠재 변수(zpose)는 패턴의 유클리드 변환에 대한 정보를 포함할 수 있다. 좌표계 변환기(14)는 좌표계 생성기(13)에 의해서 생성된 좌표계(xcord)에 유클리드 변환이 반영된 변환된 좌표계(zcord)를 생성할 수 있다. 이에 따라, 변환된 좌표계(zcord)에서 하나의 지점은, 해당 지점에 대응하는 패턴 이미지(xpattern)의 픽셀의 유클리드 변환에 대한 정보를 포함할 수 있다. 패턴의 좌표 정보 및 유클리드 변환이 콘텐트 잠재 변수(zcontent)와 독립적으로 고려될 수 있고, 결과적으로 콘텐트 잠재 변수(zcontent)는 패턴을 분석하는데 요구되는 속성들만을 나타낼 수 있다. 좌표계 변환기(14)의 예시가 도 4를 참조하여 후술될 것이다.
제2 모델(12)은 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)를 수신할 수 있고, 테스트 패턴 이미지(x'pattern) 및 테스트 수치 데이터(x'numeric)를 출력할 수 있다. 제2 모델(12)은, 복수의 샘플 콘텐트 잠재 변수들, 복수의 샘플 포즈 잠재 변수들 및 복수의 변환된 좌표계들에 의해서 트레이닝된 기계 학습 모델에 대응할 수 있다. 제2 모델(12)은, 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)를 복원하기 위하여, 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)로부터 테스트 패턴 이미지(x'pattern) 및 테스트 수치 데이터(x'numeric)를 출력할 수 있다. 일부 실시예들에서, 도 2를 참조하여 후술되는 바와 같이, 제2 모델(12)은 제1 모델(11)의 트레이닝에 사용될 수 있다. 일부 실시예들에서, 제2 모델(12)은 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)에 독립적인 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)로부터 패턴 이미지 및 수치 데이터를 생성하는데 사용될 수도 있다. 일부 실시예들에서, 제2 모델(12)은 상호 독립적인 모델들을 포함할 수 있다. 예를 들면, 제2 모델(12)은, 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)로부터 테스트 패턴 이미지(x'pattern)를 출력하는 모델 및 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)로부터 테스트 수치 데이터(x'numeric)를 출력하는 모델을 포함할 수 있다.
도 1에 도시된 바와 같이, 제2 모델(12)은 잠재 공간의 콘텐트 잠재 변수(zcontent)뿐만 아니라 변환된 좌표계(zcord)를 수신할 수 있다. 전술된 바와 같이, 변환된 좌표계(zcord)는 이미지의 픽셀들 각각에 대응하는 좌표들을 포함할 수 있고, 이에 따라 픽셀 하나를 복구하기 위하여 좌표계(zcord)의 하나의 좌표가 사용될 수 있다. 예를 들면, 패턴 이미지(xpattern)가 50x50x(layer 수)의 크기를 가지는 경우, 변환된 좌표계(zcord)는 픽셀마다 X값 및 Y값이 존재하므로 50x50x2의 크기를 가질 수 있다. 다른 한편으로, 콘텐트 잠재 변수(zcontent)는 모든 픽셀들에 동일하게 반영되는 것이 적절할 수 있다. 이에 따라, 테스트 패턴 이미지(x'pattern)에서 특정 레이어의 (i, j) 픽셀은, 변환된 잠재 변수(zcord)의 (i, j) 값 zcord [i, j] 및 콘텐트 잠재 변수(zcontent)로부터 생성될 수 있다(1≤i≤50, 1≤j≤50).
클러스터 생성기(15)는 제1 모델(11)로부터 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 수집할 수 있고, 수집된 복수의 콘텐트 잠재 변수들을 클러스터링할 수 있다. 일부 실시예들에서, 클러스터 생성기(15)는 콘텐트 잠재 변수들 사이 유클리드 거리에 기초하여 복수의 컨텐트 잠재 변수들을 클러스터링할 수 있다. 클러스터 생성기(15)는, 비제한적인 예시로서 k-center, k-medoid, k-means 등에 기초하여 클러스터링을 수행할 수 있다. 이에 따라, 도 1에 도시된 바와 같이, 클러스터 생성기(15)는 n개의 클러스터들(X1 내지 Xn)을 생성할 수 있고, n개의 클러스터들(X1 내지 Xn) 각각은 적어도 하나의 콘텐트 잠재 변수, 즉 적어도 하나의 패턴을 포함할 수 있다(n은 1보다 큰 정수).
도 2는 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 나타내는 블록도이다. 구체적으로, 도 2는 VAE(variational auto-encoder)(20)를 나타낸다. 도 2에 도시된 바와 같이, VAE(20)는 인코더(21) 및 디코더(22)를 포함할 수 있다. 일부 실시예들에서, 도 1의 제1 모델(11)은 인코더(21)에 대응할 수 있고, 제2 모델(12)은 디코더(22)에 대응할 수 있다.
인코더(21)는 고차원 데이터(x)를 저차원 잠재 변수(z)로 압축, 즉 인코딩하기 위한 모델을 지칭할 수 있다. 디코더(22)는 저차원 잠재 변수(z)를 고차원 데이터(x')로 복원, 즉 디코딩하기 위한 모델을 지칭할 수 있다. 인코더(21) 및 디코더(22)가 주어진 고차원 데이터를 모두 성공적으로 압축하고 복원하는 경우(x=x'), 잠재 변수의 잠재 공간은 고차원 데이터를 손실없이 잘 표현하는 것으로 평가될 수 있다. 또한, 잠재 공간에서 유클리드 거리는 유의미한 계량(metric)일 것이 요구될 수 있다. 이를 위하여, 잠재 변수들 사이 유사도는 가우시안 커널(Gaussian kernel)로 표현될 수 있고, 이는 잠재 변수의 추출 가능성을 나타내는 확률 밀도 함수(probabilistic density function)가 가우시안 분포(Gaussian distribution)임을 의미할 수 있다.
인코더에 의해서 정의되는 잠재 공간이 고차원 데이터를 가능한 손실없이 표현하는 동시에 잠재 변수의 추출 가능성이 가우시안 분포를 충족하도록, VAE(20)는 아래 [수학식 1]의 손실 함수(loss function)에 기초하여 트레이닝될 수 있다.
[수학식 1]에서, x는 고차원 데이터(또는 입력 이미지), z는 잠재 변수, qφ는 인코더, pθ는 디코더, N(0, 1)은 z의 사전 분포인 가우시안 분포를 나타낼 수 있다. [수학식 1]에서, 첫번째 항은 압축 후 복원시 손실율에 대응할 수 있고, 두번째 항은 잠재 변수에 대응하는 확률 밀도 함수 및 가우시안 분포 사이 차이에 대응할 수 있다.
이하에서, VAE(20)가 주로 설명될 것이나, 본 개시의 예시적 실시예들이 이에 제한되지 아니하는 점이 유의된다. 예를 들면, 도 1의 패턴 클러스터링(10)은 심층 학습에 기초한 임의의 모델을 사용할 수 있다. 예를 들면, 패턴 클러스터링(10)은 도 2의 VAE(20)뿐만 아니라 GAN(generative adversarial network)를 사용할 수도 있다.
도 3은 본 개시의 예시적 실시예에 따른 도 1의 제1 모델(11)의 예시를 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 도 3의 제1 모델(30)은 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)를 수신할 수 있고, 콘텐트 잠재 변수(zcontent) 및 포즈 잠재 변수(zpose)를 출력할 수 있다. 도 3에 도시된 바와 같이, 제1 모델(30)은 인코더(31) 및 샘플러(32)를 포함할 수 있다.
도 3을 참조하면, 인코더(31)는 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)를 수신할 수 있다. 콘텐트 잠재 변수(zcontent)는 잠재 공간의 차원을 가지는 실수 벡터일 수 있다. 또한, 콘텐트 잠재 변수(zcontent)는 확률 변수일 수 있고, 아래 [수학식 2]와 같이 가우시안 분포가 사용될 수 있다.
도 3에 도시된 바와 같이, 인코더(31)는 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)로부터 예상(expected) 중심값(center value)(μcontent) 및 예상 분산(variance)(σ2 pattern)을 출력할 수 있다.
샘플러(32)는 인코더(31)로부터 예상 중심값(μcontent) 및 예상 분산(σ2 pattern)을 수신할 수 있고, 에서 확률적 샘플링(stochastic sampling)을 수행함으로써 콘텐트 잠재 변수(zcontent)를 출력할 수 있다. 일부 실시예들에서, 샘플러(32)는 가우시안 재매개변수화(Gaussian reparameterization trick)에 기초하여 확률적 샘플링을 수행할 수 있다. 본 명세서에서, 샘플러(32)는 제1 샘플러로 지칭될 수 있다.
도 3에 도시된 바와 같이, 인코더(31)는 포즈 잠재 변수(zpose)를 출력할 수 있다. 일부 실시예들에서, 도 1을 참조하여 전술된 바와 같이, 인코더(31)는 상호 독립적인 모델들, 즉 예상 중심값(μcontent) 및 예상 분산(σ2 pattern)을 출력하는 모델 및 포즈 잠재 변수(zpose)를 출력하는 모델을 포함할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 도 1의 좌표계 변환기(14)의 예시를 나타내는 블록도이고, 도 5는 본 개시의 예시적 실시예에 따른 유클리드 변환의 예시들을 나타내는 도면이다. 도 1을 참조하여 전술된 바와 같이, 도 4의 좌표계 변환기(40)는 포즈 잠재 변수(zpose) 및 좌표계(xcord)를 수신할 수 있고, 변환된 좌표계(zcord)를 출력할 수 있다. 도 4에 도시된 바와 같이, 좌표계 변환기(40)는 샘플러(41) 및 승산기(42)를 포함할 수 있다.
일부 실시예들에서, 포즈 잠재 변수(zpose)는 이산 유클리드 변환들의 개수에 대응하는 차원을 가지는 실수 벡터일 수 있다. 예를 들면, 도 5에 도시된 바와 같이, 포즈 잠재 변수(zpose)는 정이면체군(dihedral group)에 포함되는 8개의 변환들에 대응하는 8차원 실수 벡터일 수 있고, 정이면체군에 포함되는 8개의 변환들은 행렬들(m1 내지 m8)로 표현될 수 있다. 예를 들면, 행렬 m1은 입력 이미지와 동일한 이미지(51)로의 변환을 나타낼 수 있고, 행렬 m2는 입력 이미지를 시계 방향으로 90도 회전한 이미지(52)로의 변환을 나타낼 수 있고, 행렬 m3는 입력 이미지를 180도 회전한 이미지(52)로의 변환을 나타낼 수 있으며, 행렬 m4는 입력 이미지를 시계 방향으로 270도 회전한 이미지(54)로의 변환을 나타낼 수 있다. 또한, 행렬 m5는 입력 이미지를 반사시킨 이미지(55)로의 변환을 나타낼 수 있고, 행렬 m6는 이미지(55)를 시계 방향으로 90도 회전한 이미지(56)로의 변환을 나타낼 수 있고, 행렬 m7은 이미지(55)를 180도 회전한 이미지(57)로의 변환을 나타낼 수 있으며, 행렬 m8은 이미지(55)를 시계 방향으로 270도 회전한 이미지(58)로의 변환을 나타낼 수 있다.
정이면체군에 포함되는 변환들과 같은 유클리드 변환에도 불구하고, 패턴의 속성들은 실질적으로 유지될 수 있다. 예를 들면, 패턴의 속성들을 나타내는, 공정 시뮬레이션(process simulation) 또는 공정 에뮬레이션(process emulation)의 결과는 유클리드 변환에도 불구하고 실질적으로 불변할 수 있다. 이하에서, 포즈 잠재 변수(zpose)는 정이면체군에 대응하는 8차원 실수 벡터인 것으로 가정되나, 본 개시의 예시적 실시예들이 이에 제한되지 아니하는 점이 유의된다. 예를 들면, 포즈 잠재 변수(zpose)는 연속적인 좌표 변환, 즉 연속 확률 분포를 사용하여 도출될 수도 있다.
도 3을 참조하여 전술된 콘텐트 잠재 변수(zcontent)와 유사하게, 포즈 잠재 변수(zpose)는 8차원 이산 확률 분포(discrete probability distribution)의 로짓(logit)일 수 있다. 일부 실시예들에서, 포즈 잠재 변수(zpose)는 소프트맥스(softmax)를 통해서 아래 [수학식 3]과 같이 확률 분포로 변환될 수 있다.
[수학식 3]에서, opose는 8차원 원-핫(one-hot) 벡터일 수 있고, 정이면체군의 변환들 중 하나를 나타낼 수 있다. 예를 들면, opose = [0, 1, 0, 0, 0, 0, 0, 0]는 도 5의 행렬 m2에 대응하는 변환을 나타낼 수 있다.
샘플러(41)는 softmax(zpose)에서 확률적 샘플링(stochastic sampling)을 수행함으로써 opose를 생성할 수 있다. 일부 실시예들에서, 샘플러(41)는 검벨 소프트맥스 재매개변수화(Gumbel softmax reparameterization)에 기초하여 확률적 샘플링을 수행할 수 있다. 샘플러(41)는, 도 5의 행렬들(m1 내지 m8) 중 opose의 값에 대응하는 행렬(mpose)을 식별할 수 있고, 도 4에 도시된 바와 같이, 행렬(mpose)을 출력할 수 있다. 본 명세서에서, 행렬(mpose)은 행렬 연산자로 지칭될 수 있고, 샘플러(41)는 제2 샘플러로 지칭될 수 있다.
승산기(42)는 좌표계(xcord) 및 행렬(mpose)을 승산함으로써 변환된 좌표계(zcord)를 출력할 수 있다. 도 1을 참조하여 전술된 바와 같이, 변환된 좌표계(zcord)에서 하나의 지점은, 해당 지점에 대응하는 픽셀의 유클리드 변환에 대한 정보를 포함하는 잠재 변수로서 기능할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 특징 추출 모듈(60)을 나타내는 블록도이다. 일부 실시예들에서, 도 1의 패턴 클러스터링(10)은 도 6의 특징 추출 모듈(60)을 더 포함할 수 있다. 도 6에 도시된 바와 같이, 특징 추출 모듈(60)은 특징 추출기(61) 및 잠재 특징 해석기(62)를 포함할 수 있다.
특징 추출기(61)는 패턴 이미지(xpattern) 및/또는 수치 데이터(xnumeric)로부터 특징(fpattern)을 추출할 수 있다. 예를 들면, 특징 추출기(61)는, 구조체들 사이 간격, 구조체의 면적 등과 같이 패턴 이미지(xpattern)로부터 검출가능한 특징들을 추출할 수 있다. 또한, 특징 추출기(61)는 수치 데이터(xnumeric)를 특징(fpattern)에 추가할 수 있다. 이에 따라, 특징(fpattern)은 수치로 나타낼 수 있는 패턴의 속성들을 나타낼 수 있고, 특징(fpattern)은 속성들에 개수에 대응하는 차원을 가지는 실수 벡터일 수 있다.
콘텐트 잠재 변수(zcontent)는 패턴의 고유 특성에 대한 정보를 포함하는 반면, 정보의 물리적인 의미를 해석하는 것은 용이하지 아니할 수 있다. 또한, 특징(fpattern)으로부터 물리적인 의미를 해석하는 것은 용이할 수 있으나, 특징(fpattern)만으로 패턴을 정의하는 것은 용이하지 아니할 수 있다. 예를 들면, 상이한 형상의 패턴들이 유사한 값들의 특징들을 가질 수도 있고, 유사한 속성들을 가지는 패턴들이 상이한 값들의 특징들을 가질 수도 있다.
잠재 특징 해석기(62)는 특징(fpattern) 및 콘텐트 잠재 변수(zcontent)를 수신할 수 있고, k개의 속성들을 나타내는 주요 특징(fk pattern)을 출력할 수 있다(k는 영보다 큰 정수). 잠재 특징 해석기(62)는 특징 추출기(61)로부터 제공된 특징(fpattern)에 포함된 속성들 중 클러스터링에서 중요한 적어도 하나의 속성을 식별할 수 있고, 식별된 적어도 하나의 속성을 포함하는 주요 특징(fk pattern)을 출력할 수 있다. 이를 위하여, 잠재 특징 해석기(62)는 특징(fpattern) 및 콘텐트 잠재 변수(zcontent) 사이 상관계수(correlation)를 계산할 수 있다. 이에 따라, 콘텐트 잠재 변수(zcontent)와 상관계수가 높은 속성들을 사용하여 클러스터가 용이하게 분석될 수 있다. 일부 실시예들에서, 잠재 특징 해석기(62)는 미리 정의된 문턱값을 초과하는 상관계수에 대응하는 적어도 하나의 속성을 식별할 수 있고, 식별된 적어도 하나의 속성을 포함하는 주요 특징(fk pattern)을 출력할 수 있다. 주요 특징(fk pattern)은 도 7을 참조하여 후술되는 바와 같이, 패턴 분석 모듈(70)에 제공될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 패턴 분석 모듈(70)을 나타내는 블록도이다. 일부 실시예들에서, 도 1의 패턴 클러스터링(10)은 도 7의 패턴 분석 모듈(70)을 더 포함할 수 있다. 도 7에 도시된 바와 같이, 패턴 분석 모듈(70)은 패턴 분석기(71) 및 잠재 시각화기(72)를 포함할 수 있다.
패턴 분석기(71)는, 도면들을 참조하여 전술된 바와 같이 생성된 정보에 기초하여 클러스터들을 분석할 수 있다. 예를 들면, 도 7에 도시된 바와 같이, 패턴 분석기(71)는, 주요 특징(fk pattern), 콘텐트 잠재 변수(zcontent), 검증 데이터(ypattern) 및 n개의 클러스터들(X1 내지 Xn)을 수신할 수 있고, 전역(global) 특징(fglobal), 지역(local) 특징(flocal), 전역 검증 데이터(yglobal), 지역 검증 데이터(ylocal)를 생성할 수 있다.
검증 데이터(ypattern)는 패턴을 검증함으로써 생성된 데이터를 지칭할 수 있다. 예를 들면, 검증 데이터는, 공정 시뮬레이션 및/또는 에뮬레이션을 통해서 획득될 수도 있고, 패턴을 실제 측정함으로써 획득될 수도 있다. 일부 실시예들에서, 검증 데이터(ypattern)는, 패턴의 불량률, 강건성(robustness) 등과 같이 패턴의 신뢰도를 나타내는 값을 포함할 수 있다. 입력 데이터, 즉 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)로부터 도출된 정보뿐만 아니라 검증 데이터(ypattern)가 활용됨으로써, 보다 정확한 패턴 분석이 가능할 수 있다.
일부 실시예들에서, 검증 데이터(ypattern)가 추정될 수 있다. 공정 데이터(ypattern)를 획득하는 전술된 방법들은 많은 비용(예컨대, 시간, 컴퓨팅 자원 등)이 요구될 수 있고, 이에 따라 모든 패턴 이미지(xpattern)에 대응하는 검증 데이터(ypattern)를 획득하는 것이 용이하지 아니할 수 있다. 도면들을 참조하여 전술된 바와 같이, n개의 클러스터들(X1 내지 Xn) 각각에 포함된 패턴들은 동일하거나 유사한 속성들을 가질 수 있으므로, 패턴의 검증 데이터(ypattern)는 패턴과 동일한 클러스터에 포함된 다른 패턴의 검증 데이터(ypattern)로부터 용이하게 도출될 수 있다.
패턴 분석기(71)는, 클러스터들을 구별하는 특징이나 검증 데이터를 식별할 수 있고, 이러한 특징 및 검증 데이터는 전역 특징(fglobal) 또는 전역 검증 데이터(yglobal)로 지칭될 수 있다. 또한, 패턴 분석기(71)는, 하나의 클러스터에 포함된 패턴들을 구별하는 특징이나 검증 데이터를 식별할 수 있고, 이러한 특징 또는 검증 데이터는 지역 특징(flocal) 및 지역 검증 데이터(ylocal)로 지칭될 수 있다. 패턴 분석기(71)가 전역 특징(fglobal), 전역 검증 데이터(yglobal), 지역 특징(flocal) 및 지역 검증 데이터(ylocal)를 생성하는 동작의 예시들이 도 12a 내지 도 12d를 참조하여 후술될 것이다.
잠재 시각화기(72)는, 패턴 분석기(71)에 제공되는 주요 특징(fk pattern), 콘텐트 잠재 변수(zcontent), 검증 데이터(ypattern) 및 n개의 클러스터들(X1 내지 Xn)를 수신할 수 있고, 패턴 분석기(71)로부터 전역 특징(fglobal), 전역 검증 데이터(yglobal), 지역 특징(flocal) 및 지역 검증 데이터(ylocal)를 수신할 수 있다. 잠재 공간은 비록 패턴 이미지(xpattern)에 비해 낮은 차원을 가지나, 사용자가 인지하기에는 여전히 복잡할 수 있다. 이에 따라, 잠재 시각화기(72)는 사용자가 인지할 수 있도록 잠재 공간을 시각화할 수 있다. 예를 들면, 잠재 시각화기(72)는 자기 조직화 지도(self-organizing map), 주성분 분석(principal component analysis), t-분포 확률적 임베딩(t-stochastic neighbor embedding)에 기초하여 잠재 공간을 시각화할 수 있다. 잠재 시각화기(72)는 잠재 공간 지도(MAP)를 생성할 수 있고, 잠재 공간 지도(MAP)는 콘텐트 잠재 변수(zcontent) 및 n개의 클러스터들(X1 내지 Xn)을 나타낼 수 있고, 잠재 변수(zcontent) 또는 n개의 클러스터들(X1 내지 Xn) 상에 특징이나 검증 데이터를 나타낼 수 있다. 이에 따라, 사용자는 잠재 공간 지도(MAP)를 통해서 패턴들을 용이하게 분석할 수 있다. 잠재 공간 지도(MAP)의 예시들이 도 8a 내지 도 8d을 참조하여 후술될 것이다.
도 8a 내지 도 8d는 본 개시의 예시적 실시예들에 따른 잠재 공간 지도의 예시들을 나타내는 도면들이다. 도 7을 참조하여 전술된 바와 같이, 잠재 시각화기(72)는 사용자가 인지할 수 있도록 잠재 공간을 시각화함으로써 잠재 공간 지도(MAP)를 생성할 수 있다. 잠재 시각화기(72)는 도 8a 내지 도 8d의 예시들 중 일부만을 생성할 수도 있고, 도 8a 내지 도 8d에 도시되지 아니한 추가적인 잠재 공간 지도를 생성할 수도 있다. 이하에서, 도 8a 내지 도 8d는 도 7을 참조하여 설명될 것이다.
도 8a를 참조하면, 잠재 공간 지도(MAP)는 n개의 클러스터들(X1 내지 Xn)을 나타낼 수 있다. 예를 들면, 도 8a에 도시된 바와 같이, 콘텐트 잠재 변수들은 4개의 클러스터들(Grp1 내지 GRp4)로 그룹핑될 수 있다(n=4). 또한, 도 8a에서 잠재 공간 지도(MAP)는 콘텐트 잠재 변수 상에 패턴 이미지를 나타낼 수 있고, 도 8a에 도시된 바와 같이, 동일한 클러스터에 포함되는 패턴들은 유사한 형상을 가질 수 있다.
도 8b를 참조하면, 잠재 공간 지도(MAP)는 콘텐트 잠재 변수들 상에 검증 데이터(ypattern)를 나타낼 수 있다. 예를 들면, 도 8b에 도시된 바와 같이, 콘텐트 잠재 변수들 각각은 자신의 검증 데이터(ypattern)에 대응하는 색상으로 채색될 수 있다.
도 8c를 참조하면, 잠재 공간 지도(MAP)는 콘텐트 잠재 변수들 상에 글로벌 특징(fglobal) 또는 글로벌 검증 데이터(yglobal)를 나타낼 수 있다. 예를 들면, 도 8c에 도시된 바와 같이, 콘텐트 잠재 변수들 각각은 자신의 글로벌 특징(fglobal) 또는 글로벌 검증 데이터(yglobal)에 대응하는 색상으로 채색될 수 있다. 도 8c에 도시된 바와 같이, 동일한 클러스터에 포함된 패턴들은 유사한 글로벌 특징(fglobal) 또는 글로벌 검증 데이터(yglobal)를 가질 수 있는 한편, 4개의 클러스터들(Grp1 내지 Grp4) 각각은 고유한 유사한 글로벌 특징(fglobal) 또는 글로벌 검증 데이터(yglobal)를 가질 수 있다.
도 8d를 참조하면, 잠재 공간 지도(MAP)는 콘텐트 잠재 변수들 상에 로컬 특징(flocal) 또는 로컬 검증 데이터(ylocal)를 나타낼 수 있다. 예를 들면, 도 8d에 도시된 바와 같이, 콘텐트 잠재 변수들 각각은 로컬 특징(flocal) 또는 로컬 검증 데이터(ylocal)에 대응하는 색상으로 채색될 수 있다. 도 8d에 도시된 바와 같이, 4개의 클러스터들(Grp1 내지 Grp4) 각각은 다양한 값들의 로컬 특징(flocal) 또는 로컬 검증 데이터(ylocal)를 가지는 패턴들을 포함할 수 있고, 잠재 공간 지도(MAP)로부터 하나의 클러스터에 포함된 패턴들에서 로컬 특징(flocal) 또는 로컬 검증 데이터(ylocal)의 경향이 식별될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나태는 순서도이다. 도 9에 도시된 바와 같이, 패턴 클러스터링을 위한 방법은 복수의 단계들(S12, S14, S16, S18)을 포함할 수 있다. 일부 실시예들에서, 도 9의 방법은 도 1의 패턴 클러스터링(10)에서 수행될 수 있고, 이하에서 도 9는 도 1을 참조하여 설명될 것이다.
도 9를 참조하면, 단계 S12에서 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)가 제1 모델(11)에 제공될 수 있다. 패턴 이미지(xpattern)는 2차원의 기하학적 정보를 포함할 수 있고, 수치 데이터(xnumeric)는 패턴 이미지(xpattern)에 포함되지 아니하는 패턴에 대한 정보를 포함할 수 있다. 일부 실시예들에서, 도 1을 참조하여 전술된 바와 같이, 패턴 이미지(xpattern)는 적어도 하나의 2차원 어레이로 구성될 수 있고, 수치 데이터(xnumeric)는 실수 벡터일 수 있다.
단계 S14에서, 콘텐트 잠재 변수(zcontent) 및 포즈 잠재 변수(zpose)가 획득될 수 있다. 예를 들면, 제1 모델(11)은, 복수의 샘플 패턴 이미지들 및 복수의 수치들에 의해서 트레이닝된 기계 학습 모델에 대응할 수 있고, 단계 S12에서 제공된 패턴 이미지(xpattern) 및 수치 데이터(xnumeric)에 응답하여 콘텐트 잠재 변수(zcontent) 및 포즈 잠재 변수(zpose)를 출력할 수 있다. 콘텐트 잠재 변수(zcontent)는 잠재 공간에서 하나의 지점에 대응할 수 있고, 포즈 잠재 변수(zpose)는 패턴 이미지(xpattern)에서 패턴의 유클리드 변환을 나타낼 수 있다. 포즈 잠재 변수(zpose)에 기인하여, 콘텐트 잠재 변수(zcontent)는 유클리드 변환에 독립적인 패턴의 속성들을 나타낼 수 있다.
단계 S16에서, 추가 패턴이 존재하는지 여부가 판정될 수 있다. 예를 들면, 집적 회로에서 클러스터링의 대상이 되는 패턴들 중 제1 모델(11)에 제공되지 아니한 패턴이 존재하는 경우, 단계 S12, 단계 S14 및 단계 S16이 반복될 수 있는 한편, 추가 패턴이 없는 경우, 단계 S18이 후속하여 수행될 수 있다.
단계 S18에서, 복수의 잠재 변수들이 복수의 클러스터들로 그룹핑될 수 있다. 예를 들면, 클러스터 생성기(15)는 제1 모델(11)로부터 복수의 잠재 변수들을 수집할 수 있고, 수집된 복수의 잠재 변수들 사이 유클리드 거리들에 기초하여 복수의 잠재 변수들을 클러스터링할 수 있다. 이에 따라, n개의 클러스터들(X1 내지 Xn)이 생성될 수 있고, 하나의 클러스터에 포함된 잠재 변수들, 즉 패턴들은 동일하거나 유사한 속성들을 가질 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나타내는 순서도이다. 구체적으로, 도 10의 순서도는 패턴 클러스터링에 사용되는 모델을 트레이닝하는 방법을 나타낸다. 도 10에 도시된 바와 같이, 패턴 클러스터링을 위한 방법은 단계 S22, 단계 S24 및 단계 S26을 포함할 수 있다. 일부 실시예들에서, 도 10의 방법은 도 1의 패턴 클러스터링(10)에서 수행될 수 있고, 이하에서 도 10은 도 1을 참조하여 설명될 것이다.
도 10을 참조하면, 단계 S22에서 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)가 제2 모델(12)에 제공될 수 있다. 콘텐트 잠재 변수(zcontent)는 잠재 공간에서 패턴에 대응하는 지점을 나타낼 수 있고, 변환된 좌표계(zcord)는 제1 모델(11)로부터 출력된 포즈 잠재 변수(zpose) 및 좌표계(xcord)로부터 생성될 수 있다.
단계 S24에서, 테스트 이미지(x'pattern)가 획득될 수 있다. 예를 들면, 제2 모델(12)은, 단계 S22에서 제공된 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)에 응답하여 테스트 이미지(x'pattern)를 출력할 수 있다. 테스트 이미지(x'pattern)는 콘텐트 잠재 변수(zcontent) 및 변환된 좌표계(zcord)로부터 복원된 패턴 이미지에 대응할 수 있고, 테스트 이미지(x'pattern)가 제1 모델(11)에 제공된 패턴 이미지(xpattern)와 유사할수록, 제1 모델(11) 및 제2 모델(12)이 트레이닝될 수 있다.
단계 S26에서, 제1 모델(11) 및 제2 모델(12)이 트레이닝될 수 있다. 일부 실시예들에서, 제1 모델(11) 및 제2 모델(12)은, [수학식 1]과 유사하게, 아래 [수학식 4]의 손실 함수를 최소화하도록 트레이닝될 수 있다.
[수학식 4]에서, U(K)은 opose의 사전 분포인 이산 균등 분포(discrete uniform distribution)를 나타낼 수 있다. 이때 K는 가능한 변환의 수를 의미하며, 도 5를 참조하여 전술된 바와 같이, K = 8인 경우, 정이면체군의 8개 변환들이 균등한 확률을 가지는 것을 나타낼 수 있다.
잠재 공간의 차원은 작을수록 유리할 수 있다. 예를 들면, 잠재 공간의 차원이 작을수록, 콘텐트 잠재 변수(zcontent)가 포함할 수 있는 정보가 감소할 수 있고, 이에 따라 콘텐트 잠재 변수(zcontent)는 필수적인 정보만을 포함할 수 있고, 결과적으로 유클리드 변환과 관련된 정보는 모두 포즈 잠재 변수(zpose)에 포함될 수 있다. 그러나, 잠재 공간의 차원이 지나치게 작은 경우, 콘텐트 잠재 변수(zcontent)가 필수적인 정보 조차 포함하지 못할 수 있다. 이에 따라, 잠재 공간의 차원을 결정하는 것이 중요할 수 있다. 일부 실시예들에서, 잠재 공간의 차원이 감소할수록, [수학식 4]의 첫번째 항의 절대값, 즉 디코더에 대응하는 절대값이 증가할 수 있고, 이에 따라 [수학식 4]의 첫번째 항의 절대값을 문턱값과 비교함으로써 잠재 공간의 차원이 판정될 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 패턴 클러스터링을 위한 방법을 나타내는 순서도이다. 구체적으로, 도 11의 순서도는 제2 모델(12)에 제공되는 변환된 좌표계(zcord)를 생성하는 방법을 나타낸다. 도 11에 도시된 바와 같이, 패턴 클러스터링을 위한 방법은 단계 S32, 단계 S34, 단계 S36 및 단계 S38을 포함할 수 있다. 일부 실시예들에서, 도 11의 방법은 도 1의 패턴 클러스터링(10)에서 수행될 수 있고, 이하에서 도 11은 도 1을 참조하여 설명될 것이다.
도 11을 참조하면, 단계 S32에서 좌표계(xcord)가 생성될 수 있다. 도 1을 참조하여 전술된 바와 같이, 좌표계(xcord)는 패턴에서 하나의 픽셀에 대응하는 크기를 결정할 수 있다. 좌표계 생성기(13)는 패턴 이미지(xpattern)에 대응하는 좌표계(xcord)를 생성할 수 있다.
단계 S34에서, 패턴의 유클리드 변환이 식별될 수 있다. 예를 들면, 좌표계 변환기(14)는 제1 모델(11)로부터 포즈 잠재 변수(zpose)를 수신할 수 있다. 유클리드 변환이 정이면체군에 포함되는 변환들로 제한되는 경우, 포즈 잠재 변수(zpose)는 8차원 이산 확률 분포의 로짓(logit)일 수 있다. 포즈 잠재 변수(zpose)는 소프트맥스를 통해서 확률 분포로 변환될 수 있고, 확률 분포의 샘플링을 통해서 정이면체군에 포함되는 변환들 중 하나가 식별될 수 있다.
단계 S36에서, 좌표계(xcord)가 변환될 수 있다. 예를 들면, 좌표계 변환기(14)는 단계 S34에서 식별된 유클리드 변환에 대응하는 행렬을 획득할 수 있고, 획득된 행렬을 단계 S32에서 생성된 좌표계(xcord)와 승산함으로써 변환된 좌표계(zcord)를 생성할 수 있다.
단계 S38에서, 변환된 좌표계(zcord)가 제2 모델(12)에 제공될 수 있다. 예를 들면, 좌표계 변환기(14)는 단계 S36에서 생성된 변환된 좌표계(zcord)를 제2 모델(12)에 제공할 수 있다. 제2 모델(12)은 콘텐트 잠재 변수(zcontent)로부터 패턴 이미지를 복원하기 위하여 변환된 좌표계(zcord)를 수신할 수 있다.
도 12a 내지 도 12d는 본 개시의 예시적 실시예들에 따른 패턴 클러스터링을 위한 방법의 예시들을 나타내는 순서도들이다. 구체적으로, 도 12a 내지 도 12d의 순서도들은 전역 특징, 지역 특징, 전역 검증 데이터 및 지역 검증 데이터를 추출하는 방법들을 각각 나타낸다. 일부 실시예들에서, 도 12a 내지 도 12d의 방법들은 도 7의 패턴 분석기(71)에 의해서 수행될 수 있고, 이하에서 도 12a 내지 도 12d는 도 7을 참조하여 설명될 것이다.
도 12a를 참조하면, 단계 S42a에서 복수의 특징들 및 복수의 클러스터들 사이 상관계수들이 계산될 수 있고, 단계 S44a에서 복수의 클러스터들을 구별하는 전역 특징이 추출될 수 있다. 전역 특징(fglobal)은 클러스터들을 구별하는 값을 가질 수 있다. 주요 특징(fk pattern)으로부터 전역 특징(fglobal)을 추출하기 위하여, 주요 특징(fk pattern) 및 클러스터들 사이 상관계수들이 계산될 수 있다. 일부 실시예들에서, 미리 정의된 문턱값을 초과하는 상관계수에 대응하는 적어도 하나의 특징이 전역 특징(fglobal)에 포함될 수 있다.
도 12b를 참조하면, 단계 S42b에서 복수의 특징들 및 클러스터에 포함된 콘텐트 잠재 변수들 사이 상관계수들이 계산될 수 있고, 단계 S44b에서 콘텐트 잠재 변수들을 구별하는 지역 특징이 추출될 수 있다. 지역 특징(flocal)은 하나의 클러스터에 포함된 콘텐트 잠재 변수들, 즉 패턴들을 구별하는 값을 가질 수 있다. 주요 특징(fk pattern)으로부터 지역 특징(flocal)을 추출하기 위하여, 주요 특징(fk pattern) 및 하나의 클러스터에 포함된 콘텐트 잠재 변수들 사이 상관계수들이 계산될 수 있다. 일부 실시예들에서, 미리 정의된 문턱값을 초과하는 상관계수에 대응하는 적어도 하나의 특징이 지역 특징(flocal)에 포함될 수 있다.
도 12c를 참조하면, 단계 S42c에서 검증 데이터 및 복수의 클러스터들 사이 상관계수들이 계산될 수 있고, 단계 S44c에서 복수의 클러스터들을 구별하는 전역 검증 데이터가 추출될 수 있다. 전역 검증 데이터(yglobal)는 클러스터들을 구별하는 값을 가질 수 있다. 검증 데이터(ypattern)로부터 전역 검증 데이터(yglobal)를 추출하기 위하여, 검증 데이터(ypattern)가 나타내는 속성들 및 클러스터들 사이 상관계수들이 계산될 수 있다. 일부 실시예들에서, 미리 정의된 문턱값을 초과하는 상관계수에 대응하는 적어도 하나의 속성이 전역 검증 데이터(yglobal)에 포함될 수 있다.
도 12d를 참조하면, 단계 S42d에서 검증 데이터 및 클러스터에 포함된 콘텐트 잠재 변수들 사이 상관계수들이 계산될 수 있고, 단계 S44d에서 콘텐트 잠재 변수들을 구별하는 적어도 하나의 지역 검증 데이터가 추출될 수 있다. 지역 검증 데이터(ylocal)는 하나의 클러스터에 포함된 콘텐트 잠재 변수들, 즉 패턴들을 구별하는 값을 가질 수 있다. 검증 데이터(ypattern)로부터 지역 검증 데이터(ylocal)를 추출하기 위하여, 검증 데이터(ypattern)가 나타내는 속성들 및 하나의 클러스터에 포함된 콘텐트 잠재 변수들 사이 상관계수들이 계산될 수 있다. 일부 실시예들에서, 미리 정의된 문턱값을 초과하는 상관계수에 대응하는 적어도 하나의 속성이 지역 검증 데이터(ylocal)에 포함될 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 컴퓨터 시스템(130)을 나타내는 블록도이다. 일부 실시예들에서, 도 13의 컴퓨터 시스템(130)은 도면들을 참조하여 전술된 패턴 클러스터링에 사용된 기계 학습 모델들의 트레이닝을 수행할 수 있고, 패턴 클러스터링 시스템 또는 트레이닝 시스템 등으로 지칭될 수 있다.
컴퓨터 시스템(130)은 범용 또는 특수 목적 컴퓨팅 시스템을 포함하는 임의의 시스템을 지칭할 수 있다. 예를 들면, 컴퓨터 시스템(130)은 퍼스널 컴퓨터, 서버 컴퓨터, 랩탑 컴퓨터, 가전 제품 등을 포함할 수 있다. 도 13에 도시된 바와 같이, 컴퓨터 시스템(130)은, 적어도 하나의 프로세서(131), 메모리(132), 스토리지 시스템(133), 네트워크 어댑터(134), 입출력 인터페이스(135) 및 디스플레이(136)를 포함할 수 있다.
적어도 하나의 프로세서(131)는, 컴퓨터 시스템 실행가능 명령어를 포함하는 프로그램 모듈을 실행할 수 있다. 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는, 루틴들, 프로그램들, 객체들, 컴포넌트들, 로직, 데이터 구조 등을 포함할 수 있다. 메모리(132)는 RAM(random access memory)와 같은 휘발성 메모리 형태의 컴퓨터 시스템 판독 가능 매체를 포함할 수 있다. 적어도 하나의 프로세서(131)는 메모리(132)에 액세스할 수 있고, 메모리(132)에 로딩된 명령어들을 실행할 수 있다. 저장 시스템(133)은 비휘발적으로 정보를 저장할 수 있고, 일부 실시예들에서 도면들을 참조하여 전술된 패턴 클러스터링을 위한 기계 학습 모델들의 트레이닝을 수행하도록 구성된 프로그램 모듈을 포함하는 적어도 하나의 프로그램 제품을 포함할 수 있다. 프로그램은 비제한적인 예시로서, 운영 체제(operating system), 적어도 하나의 어플리케이션, 기타 프로그램 모듈들 및 프로그램 데이터를 포함할 수 있다.
네트워크 어댑터(134)는, LAN(local area network), WAN(wide area network) 및/또는 공용 네트워크(예컨대, 인터넷) 등에 대한 접속을 제공할 수 있다. 입출력 인터페이스(135)는, 키보드, 포인팅 장치, 오디오 시스템 등과 같은 주변장치와의 통신 채널을 제공할 수 있다. 디스플레이(136)는 사용자가 확인할 수 있도록 다양한 정보를 출력할 수 있다.
일부 실시예들에서, 도면들을 참조하여 전술된 패턴 클러스터링을 위한 기계 학습 모델들의 트레이닝은 컴퓨터 프로그램 제품으로 구현될 수 있다. 컴퓨터 프로그램 제품은 적어도 하나의 프로세서(131)가 이미지 처리 및/또는 모델들의 트레이닝을 수행하게하기 위한 컴퓨터 판독가능 프로그램 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체(또는 저장 매체)를 포함할 수 있다. 컴퓨터 판독가능 명령어는 비제한적인 예시로서, 어셈블러 명령어, ISA(instruction set architecture) 명령어, 기계 명령어, 기계 종속 명령어, 마이크로 코드, 펌웨어 명령어, 상태 설정 데이터, 또는 적어도 하나의 프로그래밍 언어로 작성된 소스 코드 또는 객체 코드일 수 있다.
컴퓨터 판독가능 매체는, 적어도 하나의 프로세서(131) 또는 임의의 명령어 실행가능 장치에 의해서 실행되는 명령어들을 비일시적으로 보유하고 저장할 수 있는 임의의 유형의 매체일 수 있다. 컴퓨터 판독가능 매체는, 전자 저장 장치, 자기 저장 장치, 광학 저장 장치, 전자기 저장 장치, 반도체 저장 장치, 또는 이들의 임의의 조합일 수 있으나, 이에 제한되지 아니한다. 예를 들면, 컴퓨터 판독가능 매체는, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable read only memory), 플래시 메모리, SRAM(static random access memory), CD, DVD, 메모리 스틱, 플로피 디스크, 펀치 카드와 같이 기계적으로 인코딩된 장치 또는 이들의 임의의 조합일 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 시스템(140)을 나타내는 블록도이다. 일부 실시예들에서, 본 개시의 예시적 실시예에 따른 패턴 클러스터링은 시스템(140)에서 실행될 수 있다.
도 14를 참조하면, 시스템(140)은 적어도 하나의 프로세서(141), 메모리(143), AI(Artificial Intelligence) 가속기(145) 및 하드웨어 가속기(147)를 포함할 수 있고, 적어도 하나의 프로세서(141), 메모리(143), AI 가속기(145) 및 하드웨어 가속기(147)는 버스(149)를 통해서 상호 통신할 수 있다. 일부 실시예들에서, 적어도 하나의 프로세서(141), 메모리(143), AI 가속기(145) 및 하드웨어 가속기(147)는 하나의 반도체 칩에 포함될 수도 있다. 또한, 일부 실시예들에서, 적어도 하나의 프로세서(141), 메모리(143), AI 가속기(145) 및 하드웨어 가속기(147) 중 적어도 2개는 기판(board)에 장착된 2이상의 반도체 칩들에 각각 포함될 수도 있다.
적어도 하나의 프로세서(141)는 명령어들을 실행할 수 있다. 예를 들면, 적어도 하나의 프로세서(141)는 메모리(143)에 저장된 명령어들을 실행함으로써 운영 체제(operating system)를 실행할 수도 있고, 운영 체제 상에서 실행되는 어플리케이션들을 실행할 수도 있다. 일부 실시예들에서, 적어도 하나의 프로세서(141)는 명령어들을 실행함으로써, AI 가속기(145) 및/또는 하드웨어 가속기(147)에 작업을 지시할 수 있고, AI 가속기(145) 및/또는 하드웨어 가속기(147)로부터 작업의 수행 결과를 획득할 수도 있다. 일부 실시예들에서, 적어도 하나의 프로세서(141)는 특정한 용도를 위하여 커스텀화된 ASIP(Application Specific Instruction set Processor)일 수 있고, 전용의 명령어 세트(instruction set)를 지원할 수도 있다.
메모리(143)는 데이터를 저장하는 임의의 구조를 가질 수 있다. 예를 들면, 메모리(143)는, DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 등과 같은 휘발성 메모리 장치를 포함할 수도 있고, 플래시 메모리, RRAM(Resistive Random Access Memory) 등과 같은 비휘발성 메모리 장치를 포함할 수도 있다. 적어도 하나의 프로세서(141), AI 가속기(145) 및 하드웨어 가속기(147)는 버스(149)를 통해서 메모리(143)에 데이터를 저장하거나 메모리(143)로부터 데이터를 독출할 수 있다.
AI 가속기(145)는 AI 어플리케이션들을 위해 설계된 하드웨어를 지칭할 수 있다. 일부 실시예들에서, AI 가속기(145)는 뉴로모픽(neuromorphic) 구조를 구현하기 위한 NPU(Neural Processing Unit)를 포함할 수 있고, 적어도 하나의 프로세서(141) 및/또는 하드웨어 가속기(147)로부터 제공된 입력 데이터를 처리함으로써 출력 데이터를 생성할 수 있고, 적어도 하나의 프로세서(141) 및/또는 하드웨어 가속기(147)에 출력 데이터를 제공할 수 있다. 일부 실시예들에서, AI 가속기(145)는 프로그램가능할 수 있고, 적어도 하나의 프로세서(141) 및/또는 하드웨어 가속기(147)에 의해서 프로그램될 수 있다.
하드웨어 가속기(147)는 특정 작업을 고속으로 수행하기 위하여 설계된 하드웨어를 지칭할 수 있다. 예를 들면, 하드웨어 가속기(147)는 복조, 변조, 부호화, 복호화 등과 같은 데이터 변환을 고속으로 수행하도록 설계될 수 있다. 하드웨어 가속기(147)는 프로그램가능할 수 있고, 적어도 하나의 프로세서(141) 및/또는 하드웨어 가속기(147)에 의해서 프로그램될 수 있다.
일부 실시예들에서, AI 가속기(145)는 도면들을 참조하여 전술된 기계 학습 모델들을 실행할 수 있다. 예를 들면, AI 가속기(145)는 전술된 레이어들 각각을 실행할 수 있다. AI 가속기(145)는 입력 파라미터, 피처 맵 등을 처리함으로써 유용한 정보를 포함하는 출력을 생성할 수 있다. 또한, 일부 실시예들에서 AI 가속기(145)가 실행하는 모델들 중 적어도 일부는, 적어도 하나의 프로세서(141) 및/또는 하드웨어 가속기(147)에 의해서 실행될 수도 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
Claims (10)
- 집적 회로의 패턴들을 클러스터링하기 위한 방법으로서,
제1 패턴에 대응하는 제1 이미지를 복수의 샘플 이미지들에 의해서 트레이닝된 제1 모델에 제공하는 단계;
상기 제1 모델로부터, 제1 콘텐트(content) 잠재 변수 및 제1 포즈(pose) 잠재 변수를 획득하는 단계; 및
유클리드(Euclidean) 거리에 기초하여, 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 복수의 클러스터들로 그룹핑하는 단계를 포함하고,
상기 제1 포즈 잠재 변수는, 상기 제1 콘텐트 잠재 변수가 포함되는 제1 클러스터의 대표 패턴에 대한 상기 제1 패턴의 유클리드 변환을 나타내는 것을 특징으로 하는 방법. - 청구항 1에 있어서,
상기 제1 포즈 잠재 변수는, 정이면체군(dihedral group)에 포함되는 8개의 변환들에 각각 대응하는 8개의 실수들을 포함하는 벡터인 것을 특징으로 하는 방법. - 청구항 1에 있어서,
상기 제1 콘텐트 잠재 변수를 복수의 샘플 콘텐트 잠재 변수들에 의해서 트레이닝된 제2 모델에 제공하는 단계;
상기 제2 모델로부터 제1 테스트 이미지를 획득하는 단계; 및
상기 제1 이미지 및 상기 제1 테스트 이미지에 기초하여 상기 제1 모델 및 상기 제2 모델을 트레이닝하는 단계를 더 포함하는 방법. - 청구항 3에 있어서,
상기 제2 모델은, 상기 복수의 샘플 콘텐트 잠재 변수들 및 복수의 샘플 좌표계들에 의해서 트레이닝되고,
상기 제1 이미지에 대응하는 제1 좌표계를 생성하는 단계;
제1 포즈 잠재 변수의 확률 분포를 샘플링함으로써 상기 제1 패턴의 유클리드 변환을 식별하는 단계;
식별된 상기 유클리드 변환에 기초하여 상기 제1 좌표계를 변환하는 단계; 및
변환된 상기 제1 좌표계를 상기 제2 모델에 제공하는 단계를 더 포함하는 방법. - 청구항 1에 있어서,
상기 제1 모델은, 상기 복수의 샘플 이미지들 및 복수의 샘플 수치들에 의해서 트레이닝되고,
상기 제1 패턴의 적어도 하나의 속성을 나타내는 제1 수치 데이터를 상기 제1 모델에 제공하는 단계를 더 포함하는 방법. - 청구항 5에 있어서,
상기 제1 이미지 및 상기 제1 수치 데이터로부터 상기 제1 패턴의 제1 특징들을 추출하는 단계; 및
상기 복수의 패턴들에 대응하는 복수의 특징들 및 상기 복수의 클러스터들에 기초하여 적어도 하나의 주요 특징을 추출하는 단계를 더 포함하는 방법. - 청구항 6에 있어서,
상기 적어도 하나의 주요 특징을 추출하는 단계는,
상기 복수의 특징들 및 상기 복수의 클러스터들 사이 제1 상관계수들을 계산하는 단계; 및
상기 제1 상관계수들에 기초하여, 상기 복수의 클러스터들을 구별하는 상기 적어도 하나의 주요 특징을 추출하는 단계를 포함하는 것을 특징으로 하는 방법. - 청구항 6에 있어서,
상기 적어도 하나의 주요 특징을 추출하는 단계는,
상기 복수의 특징들 및 상기 복수의 클러스터들 중 제1 클러스터에 포함된 콘텐트 잠재 변수들 사이 제2 상관계수들을 계산하는 단계; 및
상기 제2 상관계수들에 기초하여, 상기 제1 클러스터에 포함된 상기 콘텐트 잠재 변수들을 구별하는 상기 적어도 하나의 주요 특징을 추출하는 단계를 포함하는 것을 특징으로 하는 방법. - 집적 회로의 패턴들을 클러스터링하기 위한 방법으로서,
제1 패턴에 대응하는 제1 이미지 및 제1 수치 데이터를, 복수의 샘플 이미지들 및 복수의 샘플 수치들에 의해서 트레이닝된 제1 모델에 제공하는 단계;
상기 제1 모델로부터, 제1 콘텐트(content) 잠재 변수를 획득하는 단계; 및
유클리드(Euclidean) 거리에 기초하여, 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 복수의 클러스터들로 그룹핑하는 단계를 포함하고,
상기 제1 수치 데이터는, 상기 제1 패턴의 적어도 하나의 속성을 나타내는 것을 특징으로 하는 방법. - 적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서에 의해서 실행시, 상기 적어도 하나의 프로세서로 하여금 집적 회로의 패턴들을 클러스터링하도록 명령어들을 저장하는 비일시적 저장매체를 포함하고,
상기 클러스터링은,
제1 패턴에 대응하는 제1 이미지를 복수의 샘플 이미지들에 의해서 트레이닝된 제1 모델에 제공하는 단계;
상기 제1 모델로부터, 제1 콘텐트(content) 잠재 변수 및 제1 포즈(pose) 잠재 변수를 획득하는 단계; 및
유클리드(Euclidean) 거리에 기초하여, 복수의 패턴들에 대응하는 복수의 콘텐트 잠재 변수들을 복수의 클러스터들로 그룹핑하는 단계를 포함하고,
상기 제1 포즈 잠재 변수는, 상기 제1 콘텐트 잠재 변수가 포함되는 제1 클러스터의 대표 패턴에 대한 상기 제1 패턴의 유클리드 변환을 나타내는 것을 특징으로 하는 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220008692A KR20230112438A (ko) | 2022-01-20 | 2022-01-20 | 패턴 클러스터링을 위한 방법 및 시스템 |
US18/095,887 US20230230348A1 (en) | 2022-01-20 | 2023-01-11 | Method and system performing pattern clustering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220008692A KR20230112438A (ko) | 2022-01-20 | 2022-01-20 | 패턴 클러스터링을 위한 방법 및 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230112438A true KR20230112438A (ko) | 2023-07-27 |
Family
ID=87162225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220008692A KR20230112438A (ko) | 2022-01-20 | 2022-01-20 | 패턴 클러스터링을 위한 방법 및 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230230348A1 (ko) |
KR (1) | KR20230112438A (ko) |
-
2022
- 2022-01-20 KR KR1020220008692A patent/KR20230112438A/ko unknown
-
2023
- 2023-01-11 US US18/095,887 patent/US20230230348A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230230348A1 (en) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lin et al. | Eigen-feature analysis of weighted covariance matrices for LiDAR point cloud classification | |
CN108108751B (zh) | 一种基于卷积多特征和深度随机森林的场景识别方法 | |
CN108681746B (zh) | 一种图像识别方法、装置、电子设备和计算机可读介质 | |
CN113139628B (zh) | 样本图像的识别方法、装置、设备及可读存储介质 | |
JP4376145B2 (ja) | 画像分類学習処理システム及び画像識別処理システム | |
CN111738351A (zh) | 模型训练方法、装置、存储介质及电子设备 | |
CN113327279A (zh) | 一种点云数据处理方法、装置、计算机设备及存储介质 | |
CN114298997B (zh) | 一种伪造图片检测方法、装置及存储介质 | |
CN112669298A (zh) | 一种基于模型自训练的地基云图像云检测方法 | |
KR20180082904A (ko) | 영상의 특성 추출을 위한 영상 분석 방법 및 장치 | |
CN113762326A (zh) | 一种数据识别方法、装置、设备及可读存储介质 | |
Zeppelzauer et al. | Topological descriptors for 3d surface analysis | |
CN113763385A (zh) | 视频目标分割方法、装置、设备及介质 | |
CN113435531B (zh) | 零样本图像分类方法、系统、电子设备及存储介质 | |
CN113963185A (zh) | 一种对神经网络中层特征表达能力的可视化及定量分析方法和系统 | |
CN109784404A (zh) | 一种融合标签信息的多标签分类原型系统及方法 | |
KR20230112438A (ko) | 패턴 클러스터링을 위한 방법 및 시스템 | |
US11989211B2 (en) | Non-transitory computer-readable recording medium, data clustering method, and information processing apparatus | |
JP7031686B2 (ja) | 画像認識システム、方法およびプログラム、並びにパラメータ学習システム、方法およびプログラム | |
CN116955138A (zh) | 一种验收方法、装置、设备及存储介质 | |
CN106909894B (zh) | 车辆品牌型号识别方法和系统 | |
CN117011539A (zh) | 目标检测方法、目标检测模型的训练方法、装置及设备 | |
CN110852102B (zh) | 一种中文的词性标注方法、装置、存储介质及电子设备 | |
CN114926647A (zh) | 点云识别方法、装置、设备和计算机可读存储介质 | |
CN113379653A (zh) | 用于逼真性的图像增强 |