본문 바로가기
Computer Science/Knowledge

컴퓨터 비전 기술면접 용어정리 2 (feat.스마트팩토리)

by Wikinist 2024. 2. 21.

Part. Computer Science

REST API

REST API는 Representational State Transfer(Application Programming Interface)의 약자로, 네트워크 상에서 자원(Resource)을 정의하고 이를 표현하는 방법 중 하나입니다. RESTful한 아키텍처 스타일에 따라 설계된 API를 지칭합니다.

REST API는 HTTP 프로토콜을 기반으로 동작하며, HTTP 요청을 통해 자원에 접근하고 상호작용합니다. 각 요청은 명시적인 HTTP 메서드(GET, POST, PUT, DELETE 등)와 URI(Uniform Resource Identifier)를 포함합니다. 이러한 메서드들은 자원을 다루는 다양한 작업을 나타내며, 대표적으로 CRUD(Create, Read, Update, Delete) 작업을 수행합니다.

  • Create (POST): 새로운 자원을 생성합니다. 주로 서버에 데이터를 추가할 때 사용됩니다.
  • Read (GET): 자원을 조회합니다. 서버로부터 데이터를 가져올 때 사용됩니다.
  • Update (PUT/PATCH): 기존의 자원을 수정 또는 업데이트합니다. 주로 데이터를 수정할 때 사용됩니다.
  • Delete (DELETE): 자원을 삭제합니다. 서버에서 데이터를 제거할 때 사용됩니다.

REST API의 특징은 다음과 같습니다:

  1. Stateless (무상태성): 각 요청은 서버에 저장된 상태를 갖지 않으며, 모든 필요한 정보를 요청 자체에 포함합니다. 따라서 서버는 각 요청을 별개의 요청으로 처리하고, 클라이언트의 상태를 관리하지 않습니다.
  2. Uniform Interface (일관된 인터페이스): URI를 통해 자원에 접근하고, 명시적인 HTTP 메서드를 사용하여 자원을 다룹니다. 이는 API의 일관성을 유지하고 사용하기 쉽게 만듭니다.
  3. Cacheable (캐시 가능): HTTP 프로토콜을 기반으로 하기 때문에 캐싱 기능을 활용할 수 있습니다. 이는 서버의 응답을 캐시하여 동일한 요청에 대한 성능을 향상시킬 수 있습니다.
  4. Layered System (계층화 시스템): 클라이언트와 서버 사이에 중간 계층이 존재할 수 있습니다. 이는 시스템의 확장성과 보안을 개선하며, 클라이언트는 중간 계층의 존재를 알지 못하고 서버와 직접 통신합니다.

REST API는 다양한 애플리케이션 간의 통신을 위한 표준화된 인터페이스로 널리 사용되며, 웹 서비스와 모바일 앱 등 다양한 환경에서 활용됩니다.

손실 함수(loss function)

손실 함수(loss function)는 머신 러닝 및 딥 러닝 모델에서 사용되는 핵심적인 개념으로, 모델의 예측값과 실제 타겟값 사이의 차이를 측정하는 함수입니다. 이 함수는 모델이 학습하는 동안 최적화되는데, 즉 모델이 예측을 개선하는 방향으로 매개 변수를 조정하도록 도와줍니다. 손실 함수의 값이 작을수록 모델이 더 좋은 예측을 하고 있음을 의미합니다.

손실 함수는 주어진 문제의 특성과 모델의 목적에 따라 선택됩니다. 예를 들어, 회귀 문제에서는 평균 제곱 오차(Mean Squared Error, MSE)나 평균 절대 오차(Mean Absolute Error, MAE)와 같은 손실 함수를 사용할 수 있습니다. 이진 분류 문제에서는 크로스 엔트로피 손실(Cross-Entropy Loss)이나 로그 손실(Log Loss)을 사용하고, 다중 클래스 분류 문제에서는 다중 클래스 크로스 엔트로피 손실(Multi-Class Cross-Entropy Loss)을 사용할 수 있습니다.

손실 함수는 모델의 출력값과 실제 타겟값 사이의 차이를 계산하는 것으로, 이 차이를 최소화하도록 모델을 학습시킵니다. 이를 위해 경사 하강법(Gradient Descent)과 같은 최적화 알고리즘을 사용하여 손실 함수의 그래디언트를 계산하고, 모델의 매개 변수를 업데이트합니다.

따라서 손실 함수는 모델 학습에서 중요한 역할을 합니다. 올바른 손실 함수를 선택하고 적절하게 사용하는 것이 모델의 학습 및 성능 향상에 매우 중요합니다.

옵티마이저(optimizer)

옵티마이저(optimizer)는 머신 러닝 및 딥 러닝 모델에서 사용되는 알고리즘으로, 손실 함수의 값을 최소화하거나 최대화하는 데 사용됩니다. 모델을 학습시키기 위해 옵티마이저는 주어진 손실 함수의 기울기를 분석하고 이를 사용하여 모델의 가중치(weight) 및 편향(bias)을 조정합니다. 이를 통해 모델이 주어진 데이터에 대해 더 나은 예측을 할 수 있도록 합니다.

주요 옵티마이저들은 다음과 같습니다:

  1. 확률적 경사 하강법(Stochastic Gradient Descent, SGD):
    • 가장 기본적인 옵티마이저로, 각 배치에서 손실 함수의 기울기를 계산하고 모델 파라미터를 업데이트합니다.
  2. 미니 배치 확률적 경사 하강법(Mini-batch Stochastic Gradient Descent):
    • SGD의 변형으로, 전체 데이터셋을 한 번에 처리하는 대신 작은 배치로 데이터를 나누어 경사 하강법을 적용합니다.
  3. 모멘텀(Momentum):
    • 이전 그래디언트의 지수 가중 이동 평균을 사용하여 SGD를 가속화하고, 지역 최소값에서 벗어나는 데 도움을 줍니다.
  4. 아다그라드(Adagrad):
    • 학습률을 각 파라미터에 조정하여 경사가 큰 파라미터에 대해서는 학습률을 감소시키는 옵티마이저입니다.
  5. 애덤(Adam):
    • 모멘텀과 아다그라드를 결합한 옵티마이저로, 이동 평균을 사용하여 각 파라미터의 스케일을 조정하고, 모멘텀을 통해 그래디언트의 방향을 보정합니다.
  6. RAdam:
    • 최근에 제안된 옵티마이저로, 학습 초기에 더 큰 학습률을 사용하고 이후에는 자동으로 조절하여 빠른 수렴을 이끌어냅니다.

이외에도 다양한 옵티마이저들이 존재하며, 각각의 특성에 따라 선택되거나 조정됩니다. 특정 문제나 데이터셋에 따라 최적의 옵티마이저를 선택하는 것이 중요합니다. 종종 여러 옵티마이저를 시도하고 비교하여 최적의 성능을 얻는 방법을 선택합니다.

ReConPatch

ReConPatch는 이상 탐지를 위한 모델로, 사전 훈련된 모델에서 추출된 패치 특징(patch features)을 선형 변조하여 이상을 감지하는 데 사용됩니다.

이 모델은 먼저 사전 훈련된 모델에서 이미지 데이터셋으로부터 패치 특징을 추출합니다. 그런 다음, 이러한 패치 특징을 선형적으로 변조하여 새로운 특징을 학습합니다. 이 과정을 통해 기존의 특징을 보정하고 대상 데이터에 더 적합한 특징을 추출할 수 있습니다.

ReConPatch는 대상 데이터에 더 적합한 특징을 추출하기 위해 대조적 표현 학습(contrastive representation learning)을 활용합니다. 이 방법은 특징을 수집하고 분배하여 목표 지향적이고 쉽게 분리할 수 있는 표현을 생성합니다.

대조적 학습을 위한 라벨이 없는 상황에서는, 데이터 표현 간의 두 가지 유사성 측정 방법을 가짜 라벨(pseudo-labels)로 사용합니다. 이 방법은 쌍별 유사성(pairwise similarity)과 맥락적 유사성(contextual similarity)을 활용합니다.

이 모델은 MVTec AD 데이터셋과 같이 널리 사용되는 어려운 데이터셋에서 최첨단의 이상 탐지 성능을 달성했습니다. 또한 BTAD 데이터셋에서도 최첨단의 성능을 달성했습니다.

PatchCore

PatchCore는 대규모 산업 제조에서 결함이 있는 부품을 식별하는 것이 매우 중요한 요소입니다. 이 연구에서 다루는 특별한 도전 과제는 'cold-start problem'입니다. 이는 정상적인(결함이 없는) 예제 이미지만 사용하여 모델을 맞추는 것입니다. 각 클래스마다 수작업 솔루션을 구현하는 것은 가능하지만, 목표는 여러 가지 다른 작업에 대해 동시에 잘 작동하는 시스템을 자동으로 구축하는 것입니다. 최고의 성능을 내는 방법은 ImageNet 모델에서 추출된 임베딩과 이상 탐지 모델을 결합하는 것입니다. 이 논문에서는 이러한 연구 선에 따라 PatchCore를 제안합니다.

PatchCore는 최대한 대표적인 메모리 은행을 사용하는 모델로, 이는 정상적인 패치 특징을 포함합니다. PatchCore는 상태 최신 백본 네트워크에서 추출된 메모리 은행을 사용하여 두 가지 측면의 이상 탐지와 로컬라이제이션을 달성하는 중요한 기능을 제공합니다. 이는 주변 정보를 고려한 패치 수준의 특징이 포함되어 있으며, 더 많은 정상적인 컨텍스트가 보존되고 더 나은 적합한 귀납 바이어스가 통합됩니다. 또한, 성능을 높이기 위해 메모리 은행은 코어셋-하위샘플링되어 낮은 추론 비용을 보장합니다. 코어셋은 일반적으로 가용한 집합의 구조를 최대한 근사화하는 하위 집합을 찾아서 비용을 줄이면서 근사 솔루션을 찾을 수 있도록 하는 데 사용됩니다.

PatchCore는 SPADE와 PaDiM과 밀접한 관련이 있습니다. SPADE는 사전 훈련된 백본 네트워크에서 추출된 메모리 은행을 사용하여 이미지 및 픽셀 수준의 이상 탐지를 위해 별도의 접근 방식을 적용합니다.(SPADE는 pixel level 에서 k-NN 방식으로 scoring 하여 anomaly detection을 수행합니다.) PatchCore는 메모리 은행을 사용하지만 패치 수준의 특징에 초점을 맞추어 더 높은 성능을 달성합니다. PaDiM과 비슷하게, PatchCore는 이미지 수준의 이상 탐지와 패치 수준의 이상 탐지를 모두 수행합니다. 그러나 PaDiM은 각 패치에 대해 Mahalanobis 거리 측정을 사용하는 반면, PatchCore는 테스트 시 모든 패치에 동일하게 접근 가능한 효율적인 패치 특징 메모리 은행을 사용합니다. 또한, PaDiM과 달리 PatchCore는 훈련 및 테스트 중에 입력 이미지가 동일한 모양을 갖지 않아도 됩니다. 마지막으로, PatchCore는 지역적으로 인식하는 패치 특징 점수를 사용하여 로컬 공간 분산을 고려하고 ImageNet 클래스에 대한 편향을 줄입니다.

메모리 은행(memory bank)

메모리 은행(memory bank)은 머신 러닝 및 딥 러닝 모델에서 사용되는 중요한 개념 중 하나입니다. 주로 전이 학습(transfer learning)이나 셀프 플레이(Self-Play)와 같은 학습 방법에서 활용됩니다. 메모리 은행은 모델이 학습하는 동안 보존되는 일련의 중간 표현(representation)들의 집합입니다.

일반적으로, 메모리 은행은 모델이 별도의 작업에서 학습한 정보를 보존하는 데 사용됩니다. 이는 보다 효율적인 전이 학습을 가능하게 합니다. 예를 들어, 이미지 분류 모델을 학습한 후, 이 모델의 일부 레이어나 특징 맵을 추출하여 메모리 은행에 저장할 수 있습니다. 그런 다음, 이러한 특징은 다른 작업에 대해 보조적으로 사용될 수 있습니다. 이를 통해 새로운 작업에 대한 학습을 더 빠르고 효과적으로 수행할 수 있습니다.

또한, 메모리 은행은 셀프 플레이(Self-Play)와 같은 강화 학습 알고리즘에서도 사용됩니다. 여기서 모델은 과거 경험을 기억하고 나중에 학습하는 데 사용합니다. 메모리 은행은 과거 경험을 저장하고 필요할 때 모델에게 제공함으로써 학습 과정을 개선하는 데 도움이 됩니다.

메모리 은행은 학습 중에 변하지 않는 정보를 보존하는 데 사용되므로, 전이 학습이나 셀프 플레이와 같은 다양한 학습 기법에서 중요한 역할을 합니다. 이를 통해 모델이 이전에 학습한 지식을 보존하고 새로운 작업에 대한 학습에 활용할 수 있습니다.

활성화 함수(activation function)

활성화 함수(Activation Function)는 인공 신경망에서 각 뉴런의 출력을 결정하는 함수입니다. 이 함수는 입력값에 대한 비선형 변환을 수행하여 신경망이 복잡한 패턴을 학습할 수 있도록 돕습니다. 활성화 함수는 주로 은닉층과 출력층의 뉴런에서 사용되며, 다양한 종류가 있습니다. 가장 일반적으로 사용되는 활성화 함수들은 다음과 같습니다:

  1. 시그모이드 함수(Sigmoid Function):
    • 입력을 (0, 1) 범위로 압축하여 출력합니다.
    • 이진 분류 문제의 출력층에서 주로 사용됩니다.
    • 그레이디언트 소실 문제가 발생할 수 있어서 깊은 신경망에서는 자주 사용되지 않습니다.
  2. 하이퍼볼릭 탄젠트 함수(Hyperbolic Tangent Function, Tanh):
    • 입력을 (-1, 1) 범위로 압축하여 출력합니다.
    • 시그모이드와 유사하지만 출력 범위가 더 크기 때문에 그레이디언트 소실 문제가 덜 발생합니다.
    • 은닉층에서 주로 사용됩니다.
  3. 렐루 함수(Rectified Linear Unit, ReLU):
    • 음수 입력을 0으로 변환하고 양수 입력은 그대로 출력합니다.
    • 계산이 간단하고 그레이디언트 소실 문제를 완화할 수 있으며, 따라서 많은 신경망에서 사용됩니다.
    • 입력이 음수일 때 뉴런이 죽을 수 있는 문제가 있습니다.
  4. 리키 렐루 함수(Leaky ReLU):
    • 음수 입력에 대해 작은 양수 기울기를 갖도록 합니다.
    • 뉴런이 죽는 문제를 완화합니다.
  5. 소프트맥스 함수(Softmax Function):
    • 다중 클래스 분류 문제에서 출력층에서 사용됩니다.
    • 입력을 확률 분포로 변환하여 각 클래스에 속할 확률을 예측합니다.
  6. 다양한 변형 및 조합:
    • 여러 활성화 함수들을 조합하거나 변형하여 새로운 함수를 만들거나, 기존 함수들의 성능을 개선하는 것이 있습니다.

활성화 함수는 신경망의 성능과 학습 속도에 영향을 미치므로 적절한 활성화 함수를 선택하는 것이 중요합니다. 데이터셋의 특성과 모델의 구조를 고려하여 적절한 활성화 함수를 선택해야 합니다.

Part. Smart Factory

스마트 팩토리

스마트 팩토리는 혁신적인 기술과 인공지능(AI)을 활용하여 제조 공정을 최적화하고 생산성을 향상시키는 혁신적인 제조 시스템입니다. 최근에는 비지도 학습 기술이 스마트 팩토리에서 중요한 역할을 하고 있습니다. 이 기술은 정해진 답변이나 교사 없이도 AI가 데이터를 분석하고 패턴을 파악하여 학습하는 방식으로, 'A이면 B이다'와 같이 단순한 입력과 출력이 아니라 복잡한 데이터 상에서의 패턴을 이해하고 처리하는 능력을 갖추고 있습니다.

비지도 학습은 스마트 팩토리에서 다양한 측면에서 적용됩니다. 예를 들어, LG의 'ReConPatch' 알고리즘은 컴퓨터 비전 기술을 이용하여 제조 공정 중 제품의 양품과 불량품을 식별하는데 활용됩니다. 이 알고리즘은 조그마한 단서만으로도 뛰어난 정확도로 제품을 분류하며, 이를 통해 제조업체는 생산라인에서의 불량률을 줄이고 품질을 향상시킬 수 있습니다.

또한, 생성형 AI인 챗GPT와 같은 기술도 비지도 학습을 활용한 대표적인 사례 중 하나입니다. 이러한 AI는 방대한 양의 데이터를 처리하고, 그 안에 내재된 패턴을 파악하여 사용자와의 상호작용을 통해 학습하며, 이를 통해 스마트 팩토리에서는 생산 데이터나 공정 데이터를 분석하고 의사 결정에 활용할 수 있습니다.

초음파 검사 설비

초음파 검사 설비는 고급 기술인 초음파(Ultrasound)를 활용하여 대상물체의 내부 구조를 비파괴적으로 검사하는데 사용되는 장비입니다. 초음파는 인간의 가청 범위를 넘어서는 높은 주파수를 가지며, 이를 이용하여 대상물체의 형상, 거리, 결함 등을 정밀하게 측정하고 분석할 수 있습니다.

이러한 초음파 검사 설비는 다양한 산업 분야에서 활용됩니다. 예를 들어, 제조업에서는 재료의 결함이나 불량을 검출하기 위해 사용되며, 항공기나 자동차 산업에서는 구조물의 손상이나 미세한 결함을 식별하는 데에 활용됩니다. 또한, 건축 및 건설 산업에서는 건물 구조물의 노후화나 파손을 조기에 발견하고 예방하기 위해 적용됩니다.

기존의 비파괴 검사 방법과 비교하여 초음파 검사 설비는 다음과 같은 장점을 가지고 있습니다. 먼저, 접촉식 센서를 사용하여 한 포인트씩 스캐닝하는 방식이 아니라 비접촉식으로 대상물체를 검사하기 때문에 복잡한 형태의 구조물 내부도 쉽게 접근하여 검사할 수 있습니다. 또한, 비용이 상대적으로 저렴하며, 경험이 많은 숙련된 전문가가 아니더라도 상대적으로 쉽게 사용할 수 있습니다.

뿐만 아니라, 구조 건전성 감시(SHM, Structure Health Monitoring)라는 최신 개념 기법으로서도 활용되고 있습니다. 이는 구조물의 건전성을 실시간으로 모니터링하고 평가하여 예방 정비 및 관리에 활용됩니다. 따라서 초음파 검사 설비는 현대 산업의 품질 관리와 안전성 확보에 필수적인 장비로 자리잡고 있습니다.

프로브 카드

프로브 카드는 반도체 제조 공정 중 제품 품질을 검사하기 위해 사용되는 중요한 장비입니다. 이 장비는 반도체 칩과 테스트 장비를 연결하여 웨이퍼 위의 각 칩을 테스트할 수 있도록 도와줍니다.

프로브 카드에는 여러 개의 프로브팁이 장착되어 있습니다. 이 프로브팁은 웨이퍼 위의 각 칩에 접촉하여 전기 신호를 전달하고, 그로부터 돌아오는 신호를 분석하여 반도체 칩의 동작 상태를 판별합니다. 이 과정에서 불량 칩은 정상적인 신호를 발생시키지 않거나 비정상적인 신호를 생성하여 식별됩니다.

프로브 카드는 정밀한 제어와 고속 신호 처리 능력을 갖추고 있어서, 대량의 반도체 칩을 빠르고 정확하게 테스트할 수 있습니다. 이를 통해 불량 칩을 신속하게 발견하고 공정에서 제거함으로써 제품의 품질을 유지하고 높은 신뢰성을 확보할 수 있습니다.

프로브 카드는 반도체 제조 업계에서 중요한 역할을 수행하며, 효율적인 테스트 공정을 위해 지속적으로 발전하고 있습니다.

AOI

AOI(Automated Optical Inspection) 시스템은 인쇄 회로 기판(PCB) 조립체의 결함을 자동으로 감지하는 자동화된 광학 검사 방법입니다. 이 시스템은 PCB의 칩, 부품, 및 납땜 접합 등을 자동으로 스캔하여 결함을 식별하고, 제조 공정의 효율성을 향상시킵니다.

AOI 시스템은 주로 다음 두 가지 유형의 결함을 감지합니다:

1. 치명적인 결함: 부품 누락, 납땜 불량 등과 같이 제품의 핵심적인 동작을 방해하는 결함들을 식별합니다. 이러한 결함은 제품의 전체적인 기능에 심각한 영향을 미칠 수 있으며, 빠르게 식별하여 조치를 취해야 합니다.

2. 품질 결함: 부품의 불량, 납땜 접합 부분의 미세한 결함 등과 같이 제품의 품질을 저하시키는 결함들을 식별합니다. 이러한 결함은 제품의 외관이나 성능에 영향을 미치지 않을 수 있지만, 장기적으로 제품의 신뢰성을 저하시킬 수 있으므로 신속한 대응이 필요합니다.

AOI 시스템은 여러 개의 고해상도 카메라와 이미지 처리 알고리즘을 사용하여 PCB의 각 부분을 자세하게 분석합니다. 이를 통해 제조 공정 중 발생할 수 있는 다양한 결함들을 신속하게 감지하고 조치할 수 있습니다.

구성 부품의 가변성이 낮고, PCB의 볼륨이 매우 높은 생산 환경에서 가장 효율적으로 작동하는 AOI 시스템은 현대 PCB 제조 공정에서 불가피한 도구로 자리 잡고 있습니다.


https://arxiv.org/abs/2305.16713

 

ReConPatch : Contrastive Patch Representation Learning for Industrial Anomaly Detection

Anomaly detection is crucial to the advanced identification of product defects such as incorrect parts, misaligned components, and damages in industrial manufacturing. Due to the rare observations and unknown types of defects, anomaly detection is consider

arxiv.org

https://arxiv.org/pdf/2106.08265.pdf

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Computer Science > Knowledge' 카테고리의 다른 글

컴퓨터 비전 기술면접 용어정리 1  (1) 2024.01.30
리스트와 배열  (0) 2023.08.04
캐시와 캐싱  (0) 2023.07.26
Docker  (0) 2023.07.20