Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 한양대학교 배석주 교수님의 [품질과 신뢰성] 강의를 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 

1. 신뢰성 분포와 신뢰성 척도

1.1 지수분포

지수분포는 첫번째 고장이 발생하기까지의 시간을 의미하며 지수분포의 고장률 함수는 t시간에 관계없이 일정하게 나타난다. 시간에 영향을 받지 않는 고장률은 지수분포가 유일하다. 지수분포는 욕조곡선에서 우발 고장기를 잘 설명하는 함수이다. 아래와 같이 고장률 함수는 고정적인 람다값을 가질 때 평균 수명은 람다의 역수값을 가지게 된다. 

출처: 배석주 교수님 강의자료

1.2 지수분포의 무기억성(Memoryless property of exponential distribution)

이산형 분포에서 기하분포가 무기억성을 갖는 반면 연속형 분포에서는 지수분포가 무기억성을 가지게 된다. 확률변수 X가 지수분포를 따른 다는 가정하에서 양의 실수 s, t에 대해서 다음과 같은 무기억성이 성립되는데 s까지 고장이 나지 않은 제품이 s+t까지 고장나지 않고 계속 사용가능할 확률은 이전의 시간 s와 관계없이 t까지 고장이 나지 않을 확률과 똑같다고 할 수 있다. 즉, 이전의 정상 작동 시간에 대한 기억을 고려하지 않은 것이다.

출처: 배석주 교수님 강의자료

가령, 버스 도착시간이 시간 당 6대인 지수분포를 따른다고 가정해보겠다. 이는 10분당 1대가 도착한다는 것을 의미하게 된다. 정류장에 도착해 5분을 기다려도 버스가 도착하지 않았다고 하면 이후 2분을 더 기다려서 버스가 도착할 확률은 처음 정류장에 도착해 2분을 기다려 버스가 도착할 확률과 같다. 이러한 지수분포의 무기억성 때문에 마모 과정에 대한 기억을 누적해야 하는 마모고장의 경우 지수분포를 도입할 수 없게 된다. 

1.3 지수분포와 포아송분포의 관계

지수분포는 어떤 사건이 발생하기까지 걸린 시간에 대한 분포를 표현하는데 사용된다. 이러한 발생 빈도를 나타내는 람다는 포아송 분포에서도 같은 의미로 사용되는데 포아송분포는 발생빈도에 따라 단위시간동안 발생하는 사건의 수를 나타낸다. 즉, 단위시간 당 발생한 사건 수를 역으로 보게 되면 한 사건이 발생하는데 걸린 시간으로 볼 수 있고 때문에 포아송 프로세스에서 첫번째 사건이 발생하는데 걸린 시간은 지수분포를 따른다고 할 수 있다. 

1.4 품질과 신뢰성 관점에서 지수분포

지수분포의 관점에서 사용된 제품은 확률적으로 새 것과 같기 때문에 작동하고 있는 부품을 예방보전의 목적으로 미리 교체할 필요는 없다. 신뢰도 함수, 고장까지의 평균 시간을 추정하는데 있어 관측시점에서 부품들의 총 작동시간과 고장의 수에 대한 데이터만 있다면 충분히 계산될 수 있다. Drenick의 정리에 따르면 여러 개의 다른 형태의 부품으로 구성된 복잡한 기기나 시스템의 수명분포는 넒은 조건하에서는 근사적으로 지수분포를 따른다고 할 수 있다. 이처럼 지수분포는 수학적으로 계산하기 비교적 쉽기 때문에 많은 전자부품의 고장을 모형화하는데 활용되고 있다. 

1.5 감마 분포(Erlang Distribution)

어떤 사건이 포아송분포 하에 있다고 하면 k개의 사건이 발생하는데 까지 걸린 시간은 지수분포를 일반화한 감마 분포를 따른다고 할 수 있다. 정리하면 서로 독립인 확률변수 x1, x2...xk가 지수분포를 따를 때 지수확률변수의 합은 감마분포를 따르게 된다. 예를 들어, 시간당 평균 30명의 고객이 방문하는 포아송 분포를 따르는 가게가 있다고 할 때 처음 2명의 고객이 방문할 때까지 5분 이상의 시간이 걸릴 확률은 감마분포로 표현이 가능하다. 왜냐하면 시간당 30명의 고객이 방문한다는 것은 한 고객이 방문하는데 2분이 걸리는 지수분포를 따르게 되기 때문이다. 

1.6 와이블 분포(Weibull Distribution)

확률변수 X가 아래 식과 같은 확률밀도함수를 가질 때 와이블 분포를 따른다고 한다. 이때 알파값은 척도에 영향을 주는 척도모수(Scale parameter)이며 베타값은 형상에 영향을 주는 형상모수(Shape parameter)이다. 

출처: 배석주 교수님 강의자료

와이블 분포에서 고장률 함수는 아래 식과 같다. 이때 배타값에 따라 고장률의 변화양상이 다르게 나타나는데 베타가 1보다 큰 경우 고장률은 증가하게되고 베타가 0과 1사이인 경우 고장률은 감소하게 된다. 마지막으로 베타가 1인 경우에는 고장률이 t에 관계 없이 일정하게 되는데 지수분포와 동일한 형태를 띠게 된다. 따라서 지수분포는 형상모수가 1인 와이블 분포라고 정리할 수 있다. 

출처: 배석주 교수님 강의자료

와이블 분포는 신뢰성 데이터 분석에서 가장 많이 사용되는 분포함수이다. 그리고 앞서 살펴보았던 것처럼 형상모수인 베타값에 따라 다른 여러 분포 형태를 보이게 된다. 베타가 1인 경우는 지수분포, 2인 경우는 레일리 분포, 3보다 큰 경우 정규분포에 근사하게 된다. 와이블 분포는 주로 볼 베어링이나 모터와 같은 기계 부품의 피로 고장이나 화학적 반응으로 고장이 생기는 경우에 많이 적용된다. 한편, 지수분포는 와이블 분포와 활용 범위의 차이가 있다. 지수분포는 어셈블리와 시스템의 수명분포를 나타내는데 주로 사용되는 반면, 와이블분포는 부품의 수명분포를 나타내는데 사용된다. 

1.7 정규분포(Normal Distribution)

확률변수 X가 아래와 같은 확률밀도함수를 가질 때, 평균과 표준편차의 제곱으로 정규분포를 표현할 수 있다. 정규분포는 중심이 평균 뮤이고 좌우대칭인 종모양의 형태를 띠게 된다. 이때 표준편차의 제곱인 분산값이 분포의 형태에 영향을 주게 되는데 분산이 크면 위아래가 짧고 좌우로 넓게 퍼진 형태를 보이며 반대로 분산이 작으면 위아래가 높고 좌우가 좁은 뾰족한 형태를 띠게 된다. 

출처: 배석주 교수님 강의자료

정규분포에서 특히 평균이 0이고 분산이 1인 특별한 케이스를 표준정규분포(standard normal distribution)이라고 한다. 표준정규분포를 따르는 확률변수 z에 대한 확률밀도함수 또는 누적분포함수를 알고 있으면, 모든 정규분포의 확률을 계산할 수 있다. 

정규분포에서 독특한 특징 중 하나는 중심극한정리에 의해 표본평균의 분포가 정규분포에 근사해진다는 점이다. n개의 표본이 추출되는 데이터의 분포가 정규분포가 아닌 다른 임의의 분포라고 하더라도 n의 수가 충분히 크다면 표본평균의 분포는 근사적으로 정규분포를 따른다고 할 수 있다. 일반적으로 n이 30이상이면 정규분포에 근사한다고 말할 수 있으며 표본의 분포가 정규분포 형태를 띠고 있으면 n이 3이하여도 정규분포에 근사하게 된다. 

확률변수 X에 log를 취한 값이 정규분포를 따르면 이를 대수정규분포를 다른다고 하게 되는데 대수정규분포는 다양한 형태의 분포를 표현할 수 있기 때문에 고장데이터를 모형화하는데 많이 활용되며 반도체 고장이나 금속 부식, 크랙의 성장 등으로 발생하는 고장을 표현하는데 자주 사용된다. 

1.8 베르누이와 이항분포

위에서 살펴본 분포들은 연속형 분포를 표현한 것들인데 반해 결과값이 성공과 실패와 같이 binary의 이산형 분포를 가지게 되면 이를 베르누이 확률변수라고 한다. 그리고 n개의 베르누이 확률변수의 합은 이항분포(Binomial distribution)로 나타낼 수 있다. 

1.9 포아송 분포(Poisson Distribution)

포아송 분포는 이전 절에서 살펴본 지수분포의 역 형태로 한 단위 동안 발생한 사건의 개수를 확률변수로 가지는 분포이다. 가령, 학교 주차장에 한 시간 동안 들어오는 차량의 대수, 교량을 지지하는 20m 강철선에서 결함의 개수, 반도체 웨이퍼에 발생하는 결함의 개수 등 단위 시간, 면적 동안 발생하는 평균 사건의 수를 예로 들 수 있다. 포아송 분포는 그 확률 질량함수의 평균과 분산이 뮤로서 같다는 독특한 특징을 가지고 있다. 

2. ICT기반 예지보전

2.1 시스템 열화

우리가 사용하는 제품들과 시스템은 사용시간과 빈도가 증가함에 따라 열화하게 된다. 그리고 이 열화가 내재된 강도를 초과하게 되면 시스템은 고장하게 된다. 더 이상 요구된 기능을 수행하지 못하는 상태에 이르게 되는 것이다. 시스템의 단 한 부분이 고장이 나더라도 그로 인해 전체 시스템에 영향을 주어 시스템이 작동을 중단하게 되고 심한 경우 시스템 사용자의 안전까지 위협하게 된다. 

2.2 보전의 목적

위와 같은 열화로 인한 시스템 고장으로 발생하는 인명 피해를 최소화하기 위해 이를 사전에 예측하고 예방할 수 있는 보전에 대한 요구가 커지고 있다. 보전(maintenance)는 안전하고 경제적으로 운전될 수 있는 조건으로 장비를 유지하는 활동을 말한다. 보전 활동을 결정하는 주요 요소로는 비용검토와 관련된 문제 인식이 필요하다. 효율감소로부터 증가하는 경제적 손실이 유효 보수비용보다 큰지를 판단해야 한다. 그리고 saftey risk의 관점에서 사전보전조치에 의한 안전에 대한 위험 요소 회피가 필요하다 따라서 고장상태의 예측 방법론의 필요성이 대두되고 있다. 마지막으로 휴지기간비용(Downtime cost)와 수리비용(Repair cost)을 고려할 필요가 있다. 이익이 최대가 되고, 총비용이 최소가 되도록 할 수 있는 보전방법을 선택할 필요가 있고 창정비(overhaul)에 대한 보전비용이 고려될 피룡가 있는지 판단해야 한다. 

2.3 보전방식의 분류

일반적으로 보전은 크게 사후보전(Breakdown maintenance)과 예방보전(Preventive maintenance)으로 구분된다. 사후보전은 점검 및 정기교환을 하지 않고 장비가 고장이 나면 수리를 하게 된다. 고장이 나도 그 영향이나 손실이 미미한 경우에 적합하며 열화 경향의 산포가 크고 점검 및 검사가 쉽지 않은 경우에 적용할 수 있다. 사후보전의 경우 장비의 수명이 다할 때까지 사용이 가능하기 때문에 2차 고장이 없다면 보전 수리비가 저렴하다는 이점이 있다. 하지만, 갑작스런 고장으로 장비 운용의 효율이 떨어지는 일이 발생할 수 있는 단점이 있다. 이와 달리 예방보전은 사전에 보전활동을 진행하는 경우를 말한다. 예방보전은 시간을 기준으로 예방보전을 진행하는 TBM(Time Based Maintenance)와 상태를 기준으로 예방보전을 진행하는 CBM(Condition Based Maintenance)으로 나뉘게 된다. 

시간기준보전(TBM)은 장비의 열화에 영향을 주는 파라미터(ex. 베터리 사이클 순환, 프린터의 인쇄 수)를 기준으로 수리주기를 결정하고 주기마다 수리를 진행하는 것이다. 시간기준보전의 경우 가능한 한 자주 보전하는 정책으로서 보전주기와 기능열화주기가 일치하지 않을 수도 있기 때문에 잔존 수명에 대해 손실비용이 발생하고 과잉 보전이 될 수도 있다는 단점이 있다. 아래 그림에서 볼 수 있듯이 제품이 아직 사용이 가능한 수준임에도 불구하고 짧은 보전 주기로 부품을 교체하다보니 잔손수명에 대해 손실비용이 삼각형의 크기만큼 발생하게 된다. 예방보전 주기에 따라 발생하는 비용을 비교해보면 주기를 길게 유지하게 되면 보전비용은 감소하지만 고장 발생으로 인한 수리비용이 증가하고 생산에서의 기회비용이 발생하게 된다. 따라서, 이 둘 사이의 trade-off의 균형을 맞출 수 있는 보전 주기를 결정해야 한다. 

출처: 배석주 교수님 강의자료

앞서의 시간기준보전으로 인해 발생하는 손실비용을 최소화하기 위해 제품의 상태를 기준으로 보전을 진행하는 상태기준보전(CBM)을 진행할 수 있다. 상태기반보전은 장비의 열화 상태를 센서나 온라인 연결을 통해 측정하고 일정 수준에 도달하게 되면 수리를 진행하는 보전방식이다. ICT 기술을 통해 지속적인 모니터링을 하여 보전을 결정하기 때문에 과잉 보전을 방지할 수 있는 장점이 있다. 

2.4 예지보전의 역할과 목적

예지보전은 실질적인 시스템의 운용 및 열화 상태에 따라 고장발생 시점을 사전에 예측하여 선행보전활동을 수행하는 것을 목표로 하고 있다. 이를 위해 설비의 열화를 측정하고 분석하여 설비의 잔여수명을 정확하게 예측해야 하며 이로써 고장 바로 직전에 유지보수를 실시하여 TBM과 사후보전 사이의 최소한의 비용을 발생시키게 된다. 한마디로 비용지향적인 보전활동이라고 할 수 있다. 

2.5 예지보전의 절차

1) 예지보전의 목적이 고장을 예측하는 것인지 불량을 예지하는 것인지 결정

2) 예지 대상에 대해 유닛 단위로 검사하는지 부품 단위를 검사하는 지 결정

3) 관리하고자 하는 대상의 성능열화상태가 파악 가능한지와 그 양상을 파악

4) 열화의 형태로부터 최적의 파라미터를 선정 

5) 파라미터의 측정 방법을 선택

6) 정기적으로 장비의 이상 유무를 측정

7) 파라미터와 기능 열화간의 상관관계를 측정결과를 통해 조사

8) 고장이라고 판단할 열화 경계값(Threshold)를 설정

9)  열화 기준값을 벗어난 대상을 분해 조사하고 상태를 체크

10) 데이터를 누적시키며 파라미터와 성능 열화 간의 상관 관계를 입증

11) 지속적으로 열화 상태를 관리하기 위한 경영 관리 시스템을 구축

2.6 상태기반보전 프로세스

출처: 배석주 교수님 강의자료

신호처리 프로세스 : 시스템에서 추출된 신호 데이터에는 잡음이 포함되어 있기 때문에 잡음을 제거하고 유의미한 특성을 추출하는 전처리 작업이 필요하다. 이때 많이 사용되는 기법으로 퓨리에 변환과 웨이블릿 변환이 있다. 웨이블릿 변환은 몇 개의 유의한 웨이블릿 계수로서 전체 신호를 나타낼 수 있기 때문에 데이터 축소 및 잡음 제거에 효과적인다. 사인, 코사인 함수를 기본 함수로 사용하기에 퓨리에 변환과 유사한 측면이 있지만 주파수 성분을 분해하고 해상도 성분을 파악할 수 있도록 비선형 변환을 한다는 점에서는 차이가 있다.

특징추출 프로세스: 산출된 웨이블릿 계수에 대해 특징 추출을 진행하는데 이때 허스트 지수를 사용할 수 있다. 허스트 지수는 각 수준에서 산출된 웨이블릿 계수의 분산에 대한 기울기이며 신호 데이터의 특정 구간에 대하여 웨이블릿 변환을 실시한 후 웨이블릿 계수의 분산에 대해 회귀분석을 실시하여 추정가능하다. 시스템의 이상여부를 감지하기 위해서는 다수의 주요 구성요소에 센서를 장착하여 다양한 특성치를 측정해야 하지만 차원이 커짐에 따라 특징추출이 쉽지 않게 된다. 다차원 데이터에 대한 차원축소의 방법으로 주성분분석(PCA)를 활용할 수 있다. 주성분분석은 변수의 공분산행렬을 직교분해함으로써 주성분이라 불리는 새로운 변수로 변환하는 것이다. 주성분분석은 잡음 데이터에 강건하며 변수간 상관관계를 가지는 문제(다중공선성)를 해결 가능하다. 또한, 데이터의 차원을 축소하고 상위 몇 개의 주성분만으로도 원변수의 변동을 80~90% 이상 설명할 수 잇는 장점이 있다. 

이상진단 및 예측 프로세스 : 추출된 특징에 대하여 고장 진단 및 예지를 할 수 있는 방법으로 관리도를 이용할 수 있다. 특징이 하나의 변수로 표현이 된다면 단변량관리도를, 여러 개의 변수로 표현이 된다면 다변량 관리도를 사용한다. 다변량 관리도 중 가장 많이 사용된는 것은 Hoteling의 T2관리도이며 신호 데이테로부터 추정된 통계량이 관리상한선을 초과한 경우 이상이 발생하였다고 판단한다. 이상 신호의 분류와 예측을 위해 ANN이나 SVM과 같은 머신러닝 기법 또는 CNN이나 Autoencoder과 같은 딥러닝 기법을 활용할 수 있다.

최적의사결정시스템 구축 프로세스 : 열화데이터 분석을 통한 설비의 고장시점이나 설비 신뢰도 예측 결과를 바탕으로 언제 설비를 어떻게 수리하는 것이 최적인지를 결정하는 의사결정 알고리즘을 개발할 필요가 있다. 보전 만족도와 비용을 고려하여 최대의 효과와 최소의 비용이 도출될 수 있도록 시스템을 구축해야 한다. 

출처: LGAimers / https://www.lgaimers.ai/

Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 한양대학교 배석주 교수님의 [품질과 신뢰성] 강의를 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 

1. 스마트 품질 경영

1.1 품질 4.0과 스마트 품질경영

전사적 품질관리 (Total Quality Management)는 우수한 제품 및 서비스 등을 고객에 제공하기 위해 품질에 중점을 두고 기업 전 부문의 참여를 통해 고객만족과 이익창출로 회사의 장기적인 성공에 목표를 두는 조직 전체의 체계적 노력을 말한다. 시대가 지나면서 소비자들의 요구사항은 증가하였지만 많은 기업들이 여전히 전통적인 품질 관리 경영을 고수하고 있는 상황 속에서 제품 복잡도와 다양성이 증가하게 되고 제품 수명 사이클이 짧아지게 되자 기존의 방식으로는 효과를 보기 어렵게 되었다. 이에 따라 전사적인 품질관리와 스마트 품질경영에 대한 요구가 커지고 있다.  

품질 4.0은 이러한 변화에 발맞춰 등장하게 되었는데 ICT 융합을 통해 종전의 사후검사 및 보증에서 벗어나 사전에 수집, 분석된 빅데이터를 활용하여 선제적 불량예지 및 보전 중심으로 진화된 품질경영시스템이라고 정의할 수 있다. 기존의 품질관리기법에 더해 IoT, 빅데이터 기술을 접목하여 스마트한 품질관리와 경영을 가능하게 하였다. 이러한 품질 4.0과 4차산업혁명에 등장한 신기술들이 융합되어 기존의 공장들이 스마트공장화 되어가고 있다.

1.2 품질관리 개선 영역

스마트 품질경영에서는 제품의 가치사슬의 전 영역에 대한 품질관리가 진행되는데 예방적 품질관리와 반응적 품질관리 그리고 품질관리 문화 등 품질과 관련된 모든  부분에 대한 관리 개선이 필요하다.

예방적(Preventive) 품질관리 : 단순히 제품 제조에서의 품질만이 품질관리라고 할 수 없다. 제품 설계부터 고객에게 전달되기 까지의 전 단계를 관리해야 할 필요성이 있다. 이러한 관점에 기반하여 제품 개발부터 시장 출시에 이르는 전 과정 상에서 제품의 품질을 보장하기 위해 설계된 프로세스를 예방적 품질관리라고 할 수 있다. 기존의 전통적인 제조단계에서의 품질관리를 확장하는 개념으로, 최고의 품질을 이루기 위해서는 가치사슬의 첫 단계인 개념정의 및 제품설계부터 품질관리가 시작되어야 한다는 선제적 품질 관리 영역이다. 가령, 고객의 요구사항을 들어보고 제품 설계 시에 반영하는 작업들이 예방적 품질관리에 해당한다.

 반응적(Reactive) 품질관리 : 제품 판매 이후의 품질관리를 말하며 수리 및 AS, 고장 처리 및 지속적인 개선 프로세스 등을 포괄하는 품질관리 영역이다. 이를 위해서는 현장에서 최대한 빠르고 신속한 대처가 이루어져야 하며 KPI, RFID 등 프로세스를 최적화할 필요가 있다.  

품질관리 문화 : 최고의 품질을 달성하는 것은 단순히 제조업 부서만의 임무나 책임은 아니다. 제조 파트 외에도 여러 부서간의 협업과 대화를 통한 합의를 이루어내는 것이 매우 중요하며 이를 위해 기업 내에 품질 관리에 대한 문화가 정착되어야 한다. 많은 회사에서들에서 품질 책임자가 CEO에게 직접 품질 결과를 보고할 수 있도록 하여 조직 전반에 품질 관리 문화를 정착해 나가고 있다.

1.3 품질 4.0의 구성요소

빅데이터(Volume, Variety, Velocity, Veracity) 

애널리틱스(설명적, 진단적, 예측적, 처방적(규범적)) 

연결성(제품, 설비, 프로세스와의 연결성) 

협업(소셜 미디어와 블록체인 등의 협업을 가능하게 하는 기술 활용)

1.4 빅데이터를 활용한 스마트 품질경영

복잡한 공정을 통해 생산되는 제품군, 반도체나 디스플레이 같은 경우 단순한 분석을 통해 공정의 품질상태를 파악하기 힘들기 때문에 이러한 경우 빅데이터를 활용해 분석할 수 있다. 그러나 엄청난 규모의 빅데이터를 얻게 된다하더라도 이로부터 추출한 정보가 샘플 추출에서 얻은 정보와 별반 다를게 없다면 빅데이터 분석은 의미가 없다. 빅데이터는 데이터의 규모, 속도, 정확성 및 다양성 등의 특성을 갖는데, 이 중에서 다양성이 매우 중요하다. 빅데이터 분석에 있어 데이터 확보가 관건이기 때문에 가공에 사용한 적이 없는 기계와 시스템으로부터 원천 데이터를 수집할 필요가 있다. 

빅데이터 분석은 수많은 고급 인력과 시스템을 필요로 하고 분석을 통해 얻어낸 결과가 실패할 확률이 높기 때문에 많은 비용을 초래하게 된다. 따라서 기업의 입장에서 빅데이터를 도입하는 것은 상당한 비용 감수를 요구하게 된다. 개별 기업에서 이러한 비용은 큰 부담이 될 수 있지만 복수의 기업이 함께 데이터를 확보하고 분석을 한다면 빅데이터 분석의 실패를 줄일 수 있고 많은 효과를 기대할 수 있다.  

1.5 스마트 품질경영 혁신방안

1) 실시간 커뮤니티 피드백을 제공하는 방안 :

소셜 네트워크 채널과 텍스트 마이닝 등의 애널리틱스 기술을 통해 품질과 관련된 다양한 이슈를 파악할 수 있음. 고객 관점에서의 품질 문제를 파악할 수 있다는 장점이 있음. 소셜미디어 레이더(고객 시장에서 의미 있는 패턴뿐만 아니라 정서 분석을 바탕으로 적절한 조치 방안을 모색하는 방법)을 구축할 수 있음.

2) 원격진단 및 유지보수 :

센서들을 활용하여 근본 원인분석을 수행하고 사물인터넷을 기반으로 여러 설비의 센서 피드백을 결합하여 새로운 형태의 설비데이터를 확보할 수 있음. 가령, 예측 진단 솔루션과 같이 차량 또는 설비의 상태를 모니터링하고 향후 패턴을 예측하여 이후에 발생 가능한 오작동과 고장을 사전에 파악할 수 있음. 또한, 원격 유지 보수 솔루션을 도입하여 고객이 품질 문제를 인식하기 이전에 미리 해결함으로서 서비스 품질을 크게 향상시킬 수 있음. 

3) 고도화 된 공급망 품질관리 : 공급업체 성과기록 및 과거 사고 데이터를 통해 예측을 수행하기 위해 기반 데이터를 적극적으로 취득하는 것이 중요함. 아이템 수준의 데이터 수집이 가능하다면 품질경영에 큰 이점이 될 수 있음.

1.6 실제 터치 패널 제조 공정에서 ICT 기술이 도입된 사례

공정 모니터링 시스템의 품질 예측 및 불량 요인 분석 알고리즘 개발 과정

1) 공정변수와 품질 계측지의 상관관계를 파악할 수 있는 지표 도출

- 터치 패널 공정의 공정변수(X) : 생산설비에서 Glass를 가공할 때의 조건 및 계측치(59개)

군집분석을 통해 유사 패턴을 가지는 공정변수를 제거하여 30개로 축소 가능(각 군집 내에서 변동이 가장 큰 대표 공정변수를 추출)

이후 회귀 분석의 변수 선택법을 통해 17개의 공정변수로 축소 가능(품질 계측에 영향을 주는 주요 공정변수를 추출, adjusted R^2는 0.8이상이 유지되도록 하는 동시에 RMSEP는 가능한 최소가 되도록 함)

- 품질 계측 변수(y) : 생산 공정 이후 품질 특성치(18개)

- 데이터 수(sample) : 정상(102개) / 불량(5개)

출처: 배석주 교수님 강의 자료

2) 공정변수를 통해 품질 계측지를 예측할 수 있는 가상 계측 시스템 구축(예측 모형 구축)

회귀 분석의 경우 공정 변수간 다중공선성 문제가 야기될 수 있기 때문에 주성분분석(공정변수의 정보를 주성분이라 불리는 변수로 변환)이나 부분최소제곱분석(공정변수와 품질 계측치의 정보를 잠재변수로 변환)을 이용하여 가상 계측 시스템을 구축할 수 있다. 이렇게 도출된 예측 모형을 이용하여 새로운 공정 변수값(X)에 대한 계측치(Y)를 예측할 수 있다.

가상계측을 통해서는 품질 특성치를 예측할 수 있을 뿐만 아니라 주요 공정 변수를 모니터링하여 공정의 이상 변동을 조기에 파악할 수 있다. 가령, 다변량 관리도에서 관리상한과 하한을 설정한 후 새로 들어온 데이터가 범위를 벗어나는 지 확인한다. 만약 관리 범위를 벗어난 경우에는 기여도 분석을 통해 공정 이상에 기여한 공정변수를 탐지하고 관리하여 다음 공정에서의 발생가능한 품질 문제를 예방할 수 있다. 

 

출처: 배석주 교수님 강의 자료

2. 신뢰성 개념과 중요성

2.1 신뢰성의 중요성 및 정의

품질 비용은 잠재적 위험이 되기 때문에 제품 라이프 사이클 관점에서 Total Cost의 관리는 필요하다. 개발단계에서 시장품질은 예측 가능하여야 하고 제어되어야 한다. 기업은 제품 설계 제조 과정에서는 수익을 창출할 수 없지만 제조 이후 판매 단계에서 비로소 이익을 만들 수 있다. 이때 고객 클레임이나 리콜과 같은 품질 비용이 많이 발생하게 되면 그만큼 기업이 얻을 수 있는 수익은 줄어들게 된다. 이처럼 기업은 제품의 신뢰성을 유지함으로서 가능한 많은 수익을 유지하도록 해야한다.

신뢰성은 주어진 작동 환경에서 주어진 시간 동안 시스템이 고유의 기능을 수행할 성질을 의미한다. 이를 확률로서 표현하게 되면 신뢰도가 된다. 품질과 신뢰성은 비슷하면서도 다른 의미를 가지고 있는데 우선 시간 관점에서 품질은 현시점의 제품의 특성을 나타내는 정적인 요소인 반면 신뢰성은 미래의 성능과 고장을 반영하는 동적 요소이다. 품질은 주로 생산단계에서의 관리가 필요하며 신뢰성은 초기 설계 및 개발 단계에서부터 개선/관리가 필요한 영역이다. 품질을 측정하는 척도로는 불량율, 평균, 분산이 있으며 신뢰성을 측정하는 척도로는 고장률, 수명, 신뢰도가 있다. 품질은 단기간에 측정 개선이 가능한 부분이지만 신뢰도는 장기간의 측정과 복잡한 관리 과정을 가지고 있어 기업에서는 신뢰성을 등한시하는 경향이 있다. 

2.2 신뢰성 분석의 필요성

뢰성에 영향을 주는 고장의 원인들

약한 설계 : 제품이 초기부터 취약하게 설정되었거나 설계 오류 내지 부적합한 설계로 인한 고장의 원인

과부하 : 제품이 사용되는 과정에서 설계된 강도로는 견딜 수 없을 정도의 부하가 가해지도록 하는 고장 원인

강도와 부하의 산포 : 강도가 부하보다 더 높게 설계되었다고 하더라도 생산 혹은 사용 과정에서 강도 및 부하에 산포가 발생하여 부하가 강도보다 크게 되는 고장 원인

마모 : 초기에 충분한 강도로 설계된 제품이 사용에 따라 마모되어 고장을 유발하게 되는 원인

시간 매커니즘 : 배터리의 방전, 장시간 고온 노출 및 인장 부하에 의한 변형, 전자부품 파라미터 값의 변화 등 시간의 경과에 따라 발생하는 고장 원인

잠재된 작동 : 모두 정상의 부품으로 제대로 조립된 제품이 특정 순서나 패턴으로 동작시킬 경우에만 발생하는 고장 원인

오류 : 설계 오류, 소프트웨어 코딩 오류, 조립 오류, 시험 오류, 잘못된 사용, 부적절한 유지보수 등 각종 오류에 기인한 고장 원인

2.3 신뢰성 척도 

신뢰성 문제를 체계적으로 처리하기 위해서는 시스템의 고장을 수학적으로 설명할 수 있어야 한다. 시스템은 여러개의 부품으로 구성되어 부품 고장의 모형화를 통해 시스템의 신뢰성 평가가 가능하다. 이때 고장의 발생은 불확실성을 내포하고 있기 때문에 확률변수와 분포함수 등의 확률/통계 기반으로 수명을 모형화하게 된다. 가령, 수명T의 고장 밀도함수 f(t)와 고장분포함수 F(t)는 다음과 같이 모델링할 수 있다. (수명은 부품이 작동을 시작하는 시점부터 고장이 관측될 때까지 경과한 시간으로 정의할 수 있다.

출처: 배석주 교수님 강의 자료

척도 신뢰성
신뢰도
Reliability
시스템 또는 부품이 작동을 시작해서 특정 시점 t까지 고장나지 않고 작동하고 있을 확률을 의미하며 시구간[0,t] 동안 고장나지 않을 확률로서 시간t에 대한 함수이다. 신뢰도 함수(Reliability Function)는 생물,의학분야에서 생존함수라고도 부르며 아래와 같이 정리될 수 있다. 


고장률
Failure rate
특정 시점까지 고장나지 않고 작동하던 부품이 다음 순간에 고장날 가능성이 얼마나 될 것인지 나타내는 척도로 시점 t에서 작동하는 부품이 시구간[t, t+dt]에서 고장날 확률로 정의된다. 



고장률(Failure rate)과 욕조곡선(Bath Tub Curve)

- 제품초기에는 불완전한 제조나 불충분한 품질관리로 인해 고장률이 높지만 사용하면서 고장이 시간에 따라 줄어드는 유아 고장기(infant failure period)라고 하며 SPC, Burn-in 등을 통해 대응이 가능하다
 
- 이후에는 우발 요인에 의해 고장이 발생하게 되어 고장률이 일정하게 나타나는 우발고장기(random failure period)이며 보다 충분한 안전계수를 도입하거나 derating을 통해 방지할 수 있다.

- 사용 말기에는 노화나 마모로 인해 고장률이 증가하는 마모고장기(wear failure period)이며 예방보전을 통해 고장율을 감소시킬 수 있다.

다음과 같이 시간에 따라 고장률의 변화가 욕조 모양을 보이고 있어 욕조 곡선으로 표현된다.



순간 고장율(Instantaneous Failure Rate) : 어떤 시점까지 동작하고 있는 시스템이 계속되는 단위시간 동안 고장을 일으킬 비율
평균 고장율(Average Failure Rate) : 총 동작시간 동안의 고장 개수

평균 고장시간
MTTF: Mean-Time-To-Failure
수리불가시스템(Non-Repairable System)에서 고장이 발생하기 까지의 평균시간이다.

평균 고장간격
MTBF: Mean-Time-Between-Failure
수리가능시스템(Repairable System)에서 고장간격(고장과 다음 고장 사이의 간격) 간의 평균 동작시간

평균잔여수명
MRL: Mean Residual Life
자동차, 선박, 항공기 등의 중고제품을 구입할 경우, 향후 얼마나 더 사용할 수 있는지 평가하는 척도로 이미 t시간 동안 사용된 부품이 x시간 동안 추가 사용될 수 있는 확률이다. 

보전도
Maintainability
고장난 시스템이 주어진 조건 하에서 규정된 시간 내에 수리(보전)을 완료할 확률
가용도
Availability
수리 가능한 시스템이 어떤 특정 시점에 기능을 유지하고 있을 확률

2.4 신뢰성 데이터

수명데이터 : 의도된 기능을 제대로 수행하고 있거나 고장인지의 여부로 판정하기에 이진데이터(binary) 형태를 보이며 정상 사용 조건에서 시험을 실시하면 시간이 너무 오래 걸리기 때문에 가속수명시험을 사용한다. 

성능데이터 : 최근에 제품의 수명이 길어지고 고장이 잘 나지 않는 상황이라 시간 경과에 따른 제품의 성능을 측정하여 고장이라고 생각되는 역치까지의 시간을 예측하는 시험 데이터로 연속적인 값(continuous)을 가지게 된다. 가속열화시험을 이용하여 측정한다. 

또한 신뢰성 데이터는 다음과 같이 4가지 형태를 가지게 된다. 

완전데이터 : 모든 시료가 고장날 때까지 실험을 실시하여 완전한 고장데이터를 구하는 방법

정시중단 데이터 : 특정 시간 기준을 정해놓고 그때까지의 고장 데이터와 중도절단 데이터를 기반으로 수명을 예측하는 방법 (2000시간까지 시험을 실시하여 4개의 고장 데이터, 2개의 중도 절단 데이터를 기반으로 신뢰도 예측)

정수중단 데이터 : 특정 고장 개수를 정해놓고 위와 같이 시험을 실시하는 방법(4개의 고장이 발생할 때까지의 시간을 통해 신뢰도 예측)

구간데이터 : 일정 시간마다 샘플을 체크하여 구간 내 고장 개수를 예측하여 신뢰성을 판단하는 방법(시간을 2000시간으로 고정하고 일정 간격마다 샘플을 체크하여 고장 발생 데이터를 기록하여 신뢰도를 예측)

출처: LGAimers / https://www.lgaimers.ai/

Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 한양대학교 배석주 교수님의 [품질과 신뢰성] 강의를 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 

1. 품질 및 품질 비용

1.1 품질의 개념

전통적 품질관리에서 품질은 '규격에 부합하는 것'이라고 정의할 수 있지만 관점에 따라서 품질에 대한 다양한 정의들이 존재한다. 품질이라는 것을 어느 하나의 요소로만 판단할 수 없다는 것을 보여준다. 아래는 학계의 여러 연구자들이 정의한 품질에 대한 개념을 5가지 관점에서 정리한 것이다.

선험적 관점 : 품질을 정의할 수 없더라도 무엇인지 고객이 인지할 수 있다는 관점

제품 관점 : 바람직한 성분이나 속성의 함량 차이가 곧 품질의 차이, 우리가 일반적으로 좋은 재료와 성분을 사용한 제품을 우수하다고 인식하는 것의 바탕이 되는 관점

사용자 관점 : 용도 적합성, 사람마다 다르게 느낄 수 있는 주관적인 영역

제조 관점 : 요구사항과의 일치성을 중심으로 한 품질 개념

가치 관점 : 품질은 실제 용도와 판매가격의 최적 상태

1.2 품질의 구성요소

품질은 크게 '제품특징', '무결함'으로 구성된다. '제품 특징'은 '설계품질'로서 원가 상승이 수반되지만 시장점유율을 확대하고 높은 가격을 책정하여 수익을 증대할 수 있는데 결정적으로 기여하는 요소이다. '무결함'은 '적합품질(제조품질)'이라고 하며 고객 클레임을 감소하여 재작업, 폐기처분 등으로 생기는 비용을 줄이는데 초점을 맞춘 품질 요소이다. 오늘날에는 생산자 입장에서 고객(소비자)의 입장으로 품질의 개념이 확대되었기 때문에 고객의 명시적, 묵시적 요구사항을 충족시킬 수 있는 능력이 매우 중요해졌다.

1.3 품질의 유형

제품 또는 서비스의 품질이 형성되는 과정에 따라 품질의 유형을 4가지로 나눌 수 있다. 제품 기획에서부터 개발, 제조, 판매, 사후서비스에 이르기까지 발생할 수 있는 품질의 모든 영역을 다루는 것이라 할 수 있다. 

첫 번째는 요구 품질(Requirement of Quality)로 제품/서비스를 이용하는 고객의 입장에서 생각할 수 있는 품질이다. 사람들의 생각 속에 자리한 품질 개념이기 때문에 추상적이지만 시장조사나 경쟁사 분석, 판매원의 의견 수렴 등 기업은 다양한 정보원천을 활용해 어느정도 파악할 수 있다.

두 번째는 설계 품질(Quality of Design)로서 고객이 요구하는 품질 수준을 기업의 제조역량을 고려하여 구체적으로 설계 도면등에 명문화한 품질을 말한다. 이때, 설계 품질을 결정하게 되는 주요 요인으로는 기업의 기술수준과 비용이다. 고객의 요구 품질을 구현할 수 있는 기술수준이 마련되어 있어야 하며 비용을 고려한 설계가 이루어져야 적절한 설계 품질을 유지할 수 있다.

세 번째는 제조 품질(적합품질, Quality of Manufacturing or Conformance)로서 제조 과정에서 발생하는 변동성과 불확실성에 영향을 받는 품질 영역이다. 앞서의 설계 품질과 비교하여 얼마나 완성도 있게 제조되었는지를 측정하면 제조품질의 수준을 판단할 수 있다.

네 번째는 사용 품질(시장품질, Quality of use or market)은 제품으로부터 얼마나 욕구를 충족할 수 있었는지, 사후 서비스는 얼마나 만족스러운지, 제품 또는 서비스를 신뢰할 만한지 등 고객이 제품/서비스를 실제로 사용한 후 느끼는 품질 수준이다. 

1.4 종합적 품질(Total Quality)

고객 지향적인 품질의 정의로서 제품과 서비스가 고객에게 수용되기 위해서 필요한 모든 품질 요소들을 포괄하는 개념이다. 고객을 만족시키기 위해 제조시스템의 가치사슬(value chain)을 고려할 필요가 있으며 value chain에 속한 모든 것들의 품질을 총체적으로 고려한 품질이다. 단순 제품/서비스의 품질(Q:quality) 뿐 아니라, 비용(C:cost)와 납기(D:deliver)등 실제 고객들의 품질 만족에 영향을 줄 수 있는 모든 요소들을 고려하고 있다.

1.5 저품질비용(COPQ: Cost of Poor Quality)

기업 내에서 불필요하게 발생하는 이익손실비용을 측정하는 재무적 척도로 기업의 이익에 기여하지 않는 모든 것을 포함한다. 하지만 실제로 표면상 드러나는 파악 가능한 품질 비용은 전체 품질 비용의 아주 일부만 차지하고 있고 나머지 품질 비용은 측정이 어렵고 잘 보이지 않지만 전체 매출의 상당한 비중을 차지하고 있다. 따라서 이를 개선하기 위한 노력이 반드시 수반되어야 한다. 특히, 품질 비용은 고객들에게 제품과 서비스가 도달하기 전에 사전에 미리 파악이 된다면 적은 비용으로도 충분히 개선이 가능하기 때문에 사전 품질 비용 관리가 중요해지고 있다. 

1.6 품질비용의 종류

품질 비용은 아래 그림과 같이 크게 '생산자 품질비용', '사용자 품질비용', '사회적 품질비용'으로 나눌 수 있으며 각 영역을 세부적으로도 구분할 수 있다. '생산자 품질비용'은 '예방비용', '평가비용', '실패비용'으로 구분이 되며 '예방비용'은 제조 초기부터 불량이 발생하지 않도록 하기 위한 각종 예방 활동에 소요되는 비용이다. '평가비용'은 제품/서비스 그리고 이를 생산, 판매하는데 필요한 모든 요소들에 대한 검사를 통해 일정 품질 수준을 유지하는데 사용되는 비용을 말한다. '실패비용'은 생산자 품질비용은 다수를 차지하는 비용으로서 기업 내부에서 발생하는 '내부실패비용'과 고객에게 인도된 후 발생하는 '외부실패비용'으로 구분할 수 있다. 

출처: 배석주 교수님 강의 자료

기존에는 품질이 개선되면 비용이 증가한다는 인식이 있었지만 최근에는 품질을 개선함으로서 생기는 다양한 비용들이 감소되어 품질총비용이 절감될 수 있다는 개념이 새로이 자리잡고 있다.

1.7 품질 변동의 원인

불완전한 원재료, 부적절한 제품 설계, 부적절한 공정능력으로 인해 품질 변동이 발생하게 된다. 품질 변동의 원인은 크게 이상원인과 우연원인으로 나뉘게 된다. '우연원인'은 정상적인 운전상태에서 존재하는 공정의 고유한 변동기기으로서 가령 재료나 계측기의 미약한 변동과 같이 많은 개별적인 요인에 의해 발생하게 된다. 반면, '이상원인'은 비정상적인 요인에 의해 발생하는 변동으로 각각의 개별적 요인에 의해 발생하고 큰 변동을 나타내게 된다. 가령, 재료의 불량, 작업자의 미숙련, 설비의 잘못된 설정 등으로 발생하는 변동들이 있다.

2. SPC의 필요성과 개념

2.1 SPC의 정의

공정에서 요구되는 품질이나 생산성 목표를 달성하기 위하여 '통계적 방법'으로 공정을 효율적으로 운영해 나가는 관리 방법을 말한다. SPC는 'Statistical Process Control'의 약자로 통계적인 기법을 통해 공정의 프로세스를 끊임없이 관리해나가는 활동으로 정리할 수 있다. 

제품 특성을 모니터하는 것은 공정 입력에 대한 특성 파악이 불분명할 시 출력에 대한 지속적인 모니터를 통해 입력에 대한 변동을 탐지해야 하며 제품 특성을 관리하는 것은 입력과 출력 간의 인과 관계를 이해하여 공정 입력에 대한 측정을 통해 제품의 출력 상태를 예측해내는 것이다. 이를 통해 품질 변동에 대응할 수 있고 품질 비용을 개선할 수 있다.

 이전 절에서 설명한 품질 변동은 SPC를 방해하는 핵심 요인이 라고 할 수 있다. 강의에서는 다시 한번 품질변동의 2가지 원인인 '우연원인'과 '이상원인'에 대해 설명하였는데 위에서 설명했던 것보다 더 명확하여 다시 인용해보도록 하겠다.

우연원인
chance cause
* 생산조건이 엄격히 관리된 상태 하에서도 어느 정도의 불가피한 품질변동을 발생시키는 원인
ex) 작업자의 미숙한 순련도 차이, 작업환경의 변화, 식별되지 않을 정도의 원자재 및 생산설비의 차이
* 현장에서 조치를 취해야 함
이상원인
assignable cause
* 만성적으로 존재하는 것이 아니고 산발적으로 발생하여 품질변동을 발생시키는 원인
ex) 작업자의 부주의, 불량자재의 사용, 생산 설비 상의 이상
* 현장에서 조치를 취해야 함

2.2 공정관리 및 공정 능력 향상 방법

출처: 배석주 교수님 강의자료

이상원인을 제거하여 우연원인만 존재하는 관리 상태로 만들어야 한다. 이후 시스템적 산포를 감소시킬 수 있도록 APC(advanced process control), Big data 등을 적용하여 실시간으로 공정을 능동적으로 조정하도록 한다. 아래 그림은 공정관리에서 발생하는 2가지 형태의 문제이다. 왼쪽의 경우 현수준이 규격 상한과 하한을 모두 만족하지 못하고 벗어나 있다. 이는 정확하지만 정밀하지 않은 공정이라고 볼 수 있으며 규격 안으로 들어올 수 있도록 해야한다. 오른쪽의 경우는 산포 수준이 적정 수준에 있지만 중심치가 목표치에 맞지 않은 상태로 정밀하지만 정확하지 않은 공정이다. 이는 공정 과정이나 목표치 조정을 통해 개선할 수 있다. 

출처: 배석주 교수님 강의자료

2.3 품질개선도구(QC 7 Tool)

파레토 차트(Stratification) : 데이터를 몇 개의 범주로 구분하여 문제의 원인을 파악하려는 기법, 경제학의 8:2 파레토 법칙을 품질관리에 적용한 도구

특성 요인도(Case-and-Effect Diagram) : 문제의 결과(특성)가 어떠한 원인으로 일어나는지 그 원인 관계를 살펴보고 도식화하여 문제점을 파악하는 기법, 생선뼈와 비슷한 그림으로 fishbone diagram이라고 함.

체크 시트(Check Sheet) : 부적합개수, 결점개수 등 공정 데이터를 수집하는데 사용할 수 있는 도구, 수집된 자료는 다른 유용한 정보로 변환 가능 

히스토그램(Histogram) : 어떤 조건하에서 취해진 데이터가 존재하는 범위를 몇 개의 구간으로 나누어 각 구간에 포함되는 데이터의 발생도수를 도수 표로 작성한 다음 이를 도형화한 것, 전체 데이터의 확률 분포를 파악할 수 있음. (규격에 대한 파악에 활용될 수 있음)

산점도 : 두 변수나 여러 변수의 상관관계를 그림으로 나타낸 것, 상관분석과 회귀분석에 기초로 활용됨.

그래프 : 데이터를 도형으로 나타내어 수량의 크기를 비교하거나 수량의 변화 형태를 알기 쉽게 나타낸 것 (막대그래프, 꺾은선 그래프, 레이더 차트, 상자그림 등)

관리도 : SPC에서 가장 많이 사용되는 툴로서 관리 하한선(LCL), 중심선(CL), 관리 상한선(UCL)으로 구성됨. 모든 데이터가 UCL, LCL 사이에 위치해 있으면 공정은 관리 하에 있으며 우연변동 원인만 포함되어 있다고 판단할 수 있음. 관리 상한과 하한은 평균에 +-3시그마를 한 값을 일반적으로 사용. 2개 이상의 변량에 대한 관리가 필요할 때에는 다변량 관리도를 사용할 수 있음(ex. Hoteling T2 관리도).

출처: 배석주 교수님 강의자료

2.4 관리도 분석

일반적으로 타점한 데이터들이 관리한계선 안에 분포하면 공정이 관리상태 하에 있다고 판단한다. 하지만 아래와 같이 관리 한계선 밖을 벗어나거나 일정한 모양이나 패턴을 보이면 공정에 이상이 있다고 판단한다. 

출처: 배석주 교수님 강의 자료

출처: LGAimers / https://www.lgaimers.ai/

Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 이화여자대학교 강제원 교수님의 [지도학습(분류/회귀)] 강의에 대한 요약과 생각들을 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 또한, 강의의 모든 내용을 정리하기는 어렵기 때문에 인상깊었던 내용을 중심으로 정리하였습니다. 따라서, 설명의 맥락이 끊길 수도 있다는 점 양해 부탁드립니다. 

0. Introduction

part5에서는 이전의 linear classifiation model 외에 다른 형태의 classification algorithm을 살펴보았습니다. 크게 2가지 SVM과 Neural Network에 대해 학습하였는데 2가지 모두 이미 알고 있었던 내용들이라 수월하게 들을 수 있었습니다. 그래도 2가지 모델에 대해 수학적으로 더 깊이 알아볼 수 있었던 시간이라 개인적으로 많은 공부가 되었던 강의였습니다. 

1. Support Vector Machine

아래 왼쪽 그림에서 binary classification 문제에서 support vector machine이 왜 필요한지를 확인할 수 있습니다. 그림을 보면 round sample과 square sample을 구분할 수 있는 hyperplane이 여러개 존재할 수 있다는 것을 확인할 수 있습니다. 하지만, train data에 대해서는 그 어떤 hyperplane도 비슷한 수준의 loss값을 가질 수 있겠지만 새로운 unexpected data에 대해서는 천차만별의 loss값을 가질 수 있습니다. 즉, train data에 대해서는 적합하지만 test data에는 맞지 않은 overfitting이 우려될 수 있는 것입니다. support vector machine은 이런 가정에서 출발한 모델입니다. 앞서의 문제를 해소하기 위해 support vector machine(SVM)은 positive sample과 negative sample 딱 중간에 hyperplane이 위치하는 것을 이상적인 hyperplane이라고 정의하게 됩니다. SVM의 hyperplane과 각 sample군에서 가장 가까운 sample을 support vector라고 합니다. 그리고 이 support vector와 hyperplane 사이의 거리를 margin이라고 하는데 이 margin이 가장 큰 값을 가지도록 하는 것(large margin)이 SVM이 hyperplane을 찾아내는 과정이라고 할 수 있습니다. 아래 오른쪽 그림에서 지금까지 설명한 내용을 시각적으로 확인할 수 있습니다.

출처: (좌) https://docs.opencv.org/3.4/d1/d73/tutorial_introduction_to_svm.html / (우) https://www.researchgate.net/figure/Classification-of-data-by-support-vector-machine-SVM_fig8_304611323

다시 한번 SVM의 원리를 정리해보면 SVM은 각 sample의 support vector로부터 margin이 가장 커지게 되는 hyperplane을 line seperator로 설정하게 됩니다. 강의 자료에 있던 개념을 그대로 가져와 보면 다음과 같습니다. "Maximum margin hyperplane with support vector." 제가 복잡하게 설명했던 내용을 함축적으로 정리한 표현인 것 같습니다. SVM은 support vector라는 개념을 사용하기 때문에 outlier가 존재하는 상황에서도 안정적인 성능을 유지할 수 있다는 장점이 있습니다. 

2. Optimization

SVM이 최적의 파라미터 값들을 찾아내기 위해서는 class sample들을 정확하게 분류할 뿐만 아니라 margin을 가능한 크게 해야합니다. 이 2가지 조건을 만족시키도록 하는 것이 SVM의 optimization 과정이라고 할 수 있습니다. 하지만 이러한 optimization 과정에서 한가지 제약이 생기게 됩니다. 위 그림의 경우는 data sample들이 선형분리(linear separable)가 가능하다는 전제를 가지고 있습니다. 이러한 상황에서는 hyperplane과 각 support vector 사이를 지나가는 plane 사이의 영역에 어떠한 sample도 존재하지 않을 수가 있습니다. 그러나 data가 non-separable한 경우가 있을 수도 있습니다. 가령, outlier가 존재하거나 데이터에 noise가 있을 경우 선형 모델로 구분이 쉽지 않을 수가 있습니다. 

2.1 Hard Margin SVM

Hard margin SVM은 선형 분리를 가정한 SVM 방식입니다. 앞서 얘기했던 것처럼 margin 사이의 영역에 sample들이 존재하지 않게 됩니다. 아래 그림과 같이 hyperplane h(x)가 임의의 어떤 값을 가질 때 이를 scaling하게 되면  class label이 1인 모든 positive sample들은 h(x) >= 1인 영역에 위치하게 됩니다. 반대로 class label이 -1인 모든 negative sample들은 h(x) <= -1인 영역에 위치하게 됩니다. 즉, 모든 샘플들은 y*h(x) >=1에 해당한다고 할 수 있습니다. 

출처: 강제원 교수님 강의자료

hard margin SVM의 경우 margin은 2를 w norm으로 나눈 값입니다. 따라서, SVM의 파라미터를 최적화하는 문제는 margin을 최대화하는 w norm값을 찾아야 하는 것이고 이는 w norm을 최소화하는 경우를 찾는 문제로 재정의할 수 있습니다. 일반적으로 w norm을 최소화하는 것보다는 w norm의 제곱을 최소화하는 것이 더 편합니다. 따라서, 모든 data sample들이 y*h(x) >= 1이라는 전제 하에서 w norm의 제곱을 최소화하는 문제로 optimization 과정을 거치게 됩니다. 

2.2 Soft Margin SVM

hard margin SVM과 반대로 Soft Margin SVM은 데이터가 선형 분리가 되지 않는 경우를 고려하게 됩니다. 따라서, margin 사이의 영역에 일부 sample들이 존재하는 error를 허용하게 됩니다. 이를 위해 위의 식에서 슬랙 변수를 선형 제약 조건으로 더하게 됩니다. 아래와 같이 hard margin svm의 loss function에 슬랙변수를 더하여 이를 최소화하는 w를 푸는 문제로 정리됩니다. 

출처: 강제원 교수님 강의 자료

2.3 Kernel Trick

데이터의 샘플이 선형 분리가 되지 않는 경우 kernel함수를 통해 이를 해결할 수 있습니다. 가령, 아래 왼쪽 그림과 같이 데이터 class 분포가 2개의 동심원 형태로 분포되어 있는 경우 선형 모델로 class를 분리할 수 없습니다. 그러나 오른쪽과 같이 3차원의 공간에 data를 mapping하게 되면 초평면(hyperplane)을 통해 분리가 가능하게 됩니다. 이처럼 저차원의 dataset을 고차원으로 mapping하여 separable하게 만드는 것을 kernel 기법이라고 합니다. 

출처:&nbsp;https://www.sallys.space/blog/2018/05/30/svm/

kernel함수를 통해 고차원의 공간으로 mapping이 가능하며 이때 주로 활용되는 kernel 함수로는 gaussian radial basis function(RBF), polynomial, hyperbolic tangent 등이 있으며 아래와 같은 식에서 하이퍼파라미터를 설정하여 차원 확장을 조정할 수 있습니다.

3. Aritifical Neural network (ANN)

3.1 Perceptron

인공신경망은 인간의 뇌 신경을 모사하여 non linear classification model을 해결할 수 있는 algorithm입니다. 뉴런에 입력된 전기 신호가 임계치를 넘으면 다음 뉴런으로 전기 신호를 전달하는 아이디어를 적용한 것으로 아래 그림과 같이 perceptron을 시각화하여 살펴볼 수 있습니다. 입력값인 x와 가중치 w의 곱을 선형 결합한 score값이 activation function을 거쳐 non-linear한 형태로 변환하고 이 값을 임계값과 비교하여 다음 노드의 입력값으로 전달하게 됩니다. 

출처:&nbsp;http://aikorea.org/cs231n/neural-networks-1/

인공신경망에서는 activation function으로 어떤 것을 사용하느냐에 따라 성능의 차이가 생기기 때문에 activation function의 역할이 매우 중요합니다. 대표적으로 가장 많이 사용되는 activation function은 sigmoid function으로 무한의 실수값을 0과 1사이의 값으로 mapping하는 역할을 합니다. 하지만 sigmoid function은 0 전후의 아주 좁은 구간에서만이 gradient 값이 크게 되며 양 극단에서는 gradient가 매우 작기 때문에 학습이 진행될수록 학습량이 줄어드는 단점이 있습니다. 따라서 이를 보완하기 위해 ReLU 또는 Leaky ReLU 함수가 사용되는데 gradient가 0이 되는 문제를 일부 해소시켜줍니다. 이 외에도 다양한 activation function들이 상황에 따라 사용됩니다.

출처:&nbsp;https://22-22.tistory.com/20

3.2 Multilayer Perceptron

언젠가 인공지능 발전 역사에 있어 2번의 암흑기가 있었다는 이야기를 들은 적이 있습니다. 그 첫번째 암흑기는 1960년대에 있었으며 linear model이 이른바 XoR이라는 문제를 풀 수 없다는 문제가 제기되며 도래했다고 합니다. 그러나 인공신경망 연구의 초시인 multilayer perceptron이 XoR 문제를 해결할 수 있다는 것이 증명되며 인공지능 연구는 다시 스퍼트를 받을 수 있었다고 합니다. 교수님께서는 이번 강의에서 간단한 multilayer perceptron이 XoR 문제를 푸는 과정을 rough하게 보여주셨습니다. 굉장히 흥미로웠던 내용이라 여기서 다시한번 정리해보도록 하겠습니다. 

XoR 문제는 논리 연산에 기반하여 2개의 값이 같으면 0 다르면 1을 반환하는 엄청나게 간단한 문제입니다. 가령, 아래 그림고 같이 2차원 그래프로 표현할 수 있는데 선형 모델로는 2개의 class label을 쉽게 구분할 수는 없습니다. 

출처: 강제원 교수님 강의자료

이 문제를 해결하기 위해 간단한 2layer perceptron(MLP)을 만들어 적용해보겠습니다. 아래 그림과 같이 각 노드에 선형 결합식이 있고 첫번째 class label의 x1과 x2값을 mlp에 입력해보면 아래 식과 같이 계산되어 최종 0을 출력하게 됩니다. 그리고 이와 같은 계산을 각 경우의 수에 적용하여 검증해보면 모두 정확하게 분류해 내는 것을 확인 할 수 있습니다. 

출처: 강제원 교수님 강의자료

 

출처: LGAimers / https://www.lgaimers.ai/

Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 LG이노텍 김경석 연구위원님의 [자율주행과 레이더 센서의 이해] 강의를 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 일부 자료를 제외한 전자료의 출처는 김경석 연구위원님에게 있습니다. 

1. 자율주행 시장 동향

1.1 미래 모빌리티 메가 트렌드 (ACE)

Autonomous driving - 운전자 개입없이 스스로 안전하게 주행이 가능한 자율주행 고도화

: 자율주행 level5 단계인 완전 자율 주행에 이르게 되면 모빌리티는 단순 이동 수단에서 개인 맞춤형 공간으로 변화하게 되고 운전자 또한 승객으로서 전환될 것

Connectivity - 고도화된 연결형 자율주행을 통한 탑승자의 안전 및 교통관리 효과성 극대화

: level 3단계에서는 차량과 인터넷 모바일 연결성 강화를 위한 5G 채용 -> level 5 단계 이상에서는 승객 안전을 극대화하기 위한 5G-V2X 기반 연결형/지능형 자율주행 고도화가 진행될 예정 

Electrification - 높은 에너지 효율성 기반 1회 충전으로 최대 주행거리 확보

: 글로벌 환경 규제 강화, 배터리 기술 고도화, 소비자 인식 개선으로 '친환경 차'에 대한 높은 수요와 성장이 전망됨

1.2 자율주행 단계 고도화

출처:&nbsp;https://blog.hyundai-transys.com/249

자율주행은 운전자를 주행으로부터 자유롭게 함으로서 많은 혜택을 가져다 줄 것으로 기대되지만 한편으로는 도덕적 판단, 사고의 책임, 기계에 대한 신뢰 등여전히 여러 문제가 존재하고 있음

1.3 자율주행 센서와 발전 방향

자율주행 센서의 핵심 기술 - 카메라(Camera), 레이다(Radar), 라이다(LiDAR)

자율주행 레벨 4이상의 고도 자율주행에서는 V2X 통신 오디오 기술이 반드시 필요

자율 주행 레벨이 높아질 수록 더 많은 센서를 필요로 하고 고속 주행시 센서 정확도가 강조됨에 따라 개별 센서 기술에서 센서 pod 기술(카메라, 레이더, 라이다 등 인지를 위한 센서들의 일체형 통합 모듈)로 발전 중에 있음

센서 pod 기술은 차량 장착과 센서 간 Calibration에 용이하다는 이점이 있어 많은 곳에서 센서 pod 기술을 도입 채용하고 있음

Camera의 경우 가장 빠른 스펙 고도화를 보이고 있으며 고온/저온 동작에서의 품질 확보를 위한 lens/housing 구조 최적화가 필요한 상황, 제조 공정에서는 active alignment(lens를 센서와 정렬하는 기술)와 calibration 기술의 고도화가 필요함. level 3 자율주행에서는 5Mp의 카메라가 사용되고 있지만 level 5단계에 이르면 15Mp 이상의 고해상도 카메라가 필요

Radar의 경우 ADAS 3D 레이더에서 4D Imaging 레이더로의 발전이 예상되는 상황. AI기술과 perception 소프트웨어 고도화로 사물의 형상을 구분하고 상황을 예측하는 데까지 이를 것으로 기대됨. 이러한 기술 발전이 고도화되면 LiDAR을 대체할 것으로 예상됨. 레이더 생산에서 안정적으로 수율을 확보하는 것은 매우 중요. 이 중 평탄도 관리 및 calibration 공정의 차별화가 필요함. 이번 헤커톤의 과제에 해당되는 부분

LiDAR의 경우 차량신뢰성, 디자인, 비용 등의 우선 순위로 발전 개발되고 있음. 200m 이상을 감지할 수 있는 mechanical LiDAR과 80m 단거리를 감지하는 solid LiDAR 등이 있음

출처: 김경석 연구원 강의 자료

자율주행 3단계까지는 차량 내 센서 탑제 수와 종류의 증가가 기술의 핵심이지만 4단계 이상부터는 단순 센서 수보다는 센서 기능의 조화와 정밀한 센싱 기술이 자율주행의 성능을 결정하는 요소가 될 것으로 보임.

자율주행 센서는 각각의 장단점이 있기 때문에 어느 하나로만 자율주행에 적용할 수 없음. 레이더는 해상도가 낮지만 장거리 감지와 열악한 환경에서의 물체 인지에 우수한 성능을 보임. 카메라는 악천후, 야간에 센싱 성능이 저하되지만 해상력과 색상 구분이 뛰어나고 가격 경쟁력이 있어 현재 가장 많이 활용되고 있음. 라이다는 주변공간을 3d mapping으로 표현하령 사물 형상과 공간 인식이 매우 뛰어난 장점을 가지고 있음.

출처: 김경석 연구원 강의 자료

2. Radar 제품 이해

2.1 Radar의 이해

Radar는 Radio Detection And Ranging의 약어이며 Radio Wave를 이용한 사물 감지하는 기술

차량 Radar는 차량/보행자/도로 인프라를 인식하여 차량과의 거리, 상대속도, 각도, 높이 등의 정보를 수집

ToF(송신 전자파 신호와 수신 전자파 신호의 시간차)와 도플러 주파수 변화량을 측정해 상대 물체와의 거리와 상대 속도 측정, 신호가 반사되는 시간이 길수록 상대물과의 거리가 멀다는 원리를 이용한 센서 장치

레이더는 군사용, IoT용, 차량용 등 주 사용처에 따라 다른 주파수를 사용하고 있음. 강의에서 주로 다루게 되는 레이더는 차량에 사용되는 ADAS용 레이더로 차량 앞과 뒤 범퍼에 설치되어 차량, 보행자, 도로 인프라를 인식하는데 사용되는 레이더임.

레이더는 거리 측정이 가능한데 송신 신호의 변조 방식에 따라 구형파를 이용하는 Pulsed Radar와 연속적 삼각파를 이용하는 FMCW Radar(Frequency Modulated Continuous Wave)로 나눌 수 있음. pulsed radar는 진폭을 늘려 멀리 신호를 보내는 군사용 목적으로 많이 사용되고 FMCW는 시간에 따라 선형적으로 변하는 삼각파 형태의 chirp 신호를 사용하고 주로 차량용으로 사용됨. 

또한, 도플러 효과를 이용해 상대물의 속도를 측정하며 도플러 주파수가 크다는 것은 상대물의 속도가 빠르다는 것을 의미하며 도플러 주파수가 작으면 상대물의 속도가 느리다는 것을 말함.

레이더는 array 안테나로 송수신된 신호의 위상차를 이용해 상대물의 각도와 위치를 파악할 수 있음. 안태나의 배열을 나타내는 array가 많을수록 위치, 각도 정보를 더 세밀하게 측정할 수 있음.

2.2 Radar의 종류

SRR(60m 이내의 근거리용)은 차량의 측후방에 장착되고 사각지대 감지(BSD), 주차 보조(PA), 후진 시 차량 감지(CTA), 교통체증 보조(TJA)에 사용됨

MRR(180m 이내의 중거리용)은 차량 전방에 장착되고 충돌방지(AEB), 보행자 보호(PD), 전방 후방 충돌 경고(FCW)에 사용되고 있음.

LRR(250m 이상의 장거리용)은 차량 전방에 장착하며 고속도로에서 smart cruise에 사용되는 adaptive cruise control과 충돌 방지를 automatic emergency breaking에 사용됨. 

In-Cabin Radar는 차량 내부에 장착하고 차량 내 유아 감지(CPD), 벨트 착용 알람(SBR), 차량 절도 방지에 사용됨.

출처: 김경석 연구원 강의 자료

현재 radar는 2D,3D를 넘어 4D로 발전되고 있는데 4D radar는 이미지 레이더로서 초고해상도 센서를 기반으로 거리, 속도, 높이까지 측정하여 사물의 형체를 인식할 수 있음. 자율주행 level4 이상에서는필수적인 기술. 차량용 radar는 Infineon, TI, NXP의 칩셋이 주로 사용되고 있음. 차량 안전에 대한 규제 강화로 radar에 대한 수요는 지속적으로 증가할 것으로 보임.

3. Radar 제조 공정

3.1 Radar 제품 소개

LG 이노텍의 In-Cabin 레이더 또는 ROA(Rear Occupant Alert) 레이더는 차량 내 장착되어 후석 승객 유무를 감지하는 레이더임. In-cabin 시스템에는 카메라, 압력 센서, 초음파, 레이더 등 다양한 기술들이 사용되고 있지만 각각 특정 상황에서의 단점이 존재하기 때문에 가장 성능적으로 안정적인 레이더 기술이 다수 채택되어 사용되고 있음. In-cabin 레이더는 radome, PCB 모듈, housing으로 구성되어 있음.

3.2 Radar 조립 공정

1) ICT(In-circuit Test) : PCB의 테스트 포인트를 통해 각 부품의 RLC값을 확인하여 SMT(Surface Mount Technology)시 발생할 수 있는 불량을 검출할 수 있음

2) F/W Down(펌웨어 다운로드):  레이더 제품의 메모리에 펌웨어를 넣는 공정

3) DC Test : 모듈이 정상 작동하는지 입력 전원을 넣어 확인하는 작업

4) PCB분리(routing공정) :  array상태로 되어있는 PCB를 분리하는 공정 단계로 커팅 방식에 따라 데미지가 적고 정밀한 가공이 가능한 레이저 공정과 저렴한 가공이 가능한 블레이드 커팅 공정이 있음 

5) TIM(Thermal Interface Matrerial) dispensing : 도포 면적과 도포량에 따라 발열 성능에 중요한 영향을 미치는 공정

6) shield plate 조립 후 TIM 재도포 과정을 거침

7) Press-Fit : 케이스 혹은 커넥터에 있는 PIN과 PCB를 연결하는 공정, 압력에 따라 PCB 평탄도에 영향을 미침

8) Screw 체결 : 높이와 토크가 핵심으로 관리가 필요

9) Sealant 도포 : 케이스 밀폐를 위해 진행하는 공정으로 미도포된 부분이 없는지 확인하고 radome의 평행도 관리 필요

10) Calibration EOL : 공정 및 부품 특성을 반영하여 제품 성능에 영향이 없는지 최종 점검하는 중요한 공정단계

11) Labelling : 제품 추적 관리를 위해 라벨을 부착

출처: 김경석 연구원 강의 자료

3.3 가인자 공정

TIM(Thermal Interface Material)은 일반 부품의 발열을 확산시켜 열을 낮추고자 하는 목적으로 사용되며 액체 또는 곷 타입을 사용함. 단가가 비싸기 때문에 발열원에 따라 최적의 재료를 선택하게 됨. TIM 도포 시에 Pin 검사(수평, 수직 높이 측정)를 진행하여 잘 안착되었는지 확인하고 도포량을 확인해야 함. 

Press-Fit은 케이스에 있는 PIN과 PCB를 연결하는 공정으로 체결 압력에 따라 PCB 평탄도에 영향을 미치게 됨. 평행하게 안착하는 것이 핵심 기술 그렇지 않으면 PIN이 휘거나 손상됨. 체결 시의 압력인 압압력을 관리하고 PIN 높이를 철저히 관리해야 할 필요가 있음.

Screw 체결 시 torque, screw 높이, PCB 평탄도를 관리해야 함. LVDT 변환기를 이용해 screw 높이를 검사함. PCB 평탄도는 레이더 성능에 핵심적인 영향을 미치게 됨.

Radome Assembly 공정 시 도포량, 압착 시간, 평행도를 고려해야 함. 실란트 도포량이 끊김 없는지 확인하고 radome 접합 시간을 측정하고 높이를 측정하여 관리함. radome의 평행도에 따라 레이더 방사 패턴에 왜곡이 발생할 수 있음.

Calibration & Test 공정에서 최종 제품의 성능을 보정 및 평가함. 공정 시 생긴 오차로 인한 RF 성능의 차이를 목표값으로 맞춰 주는 과정. 1000~2000개의 RF항목을 보정하고 원하는 구간에 들어오는지 확인하여 IC메모리에 보정값을 저장하게 됨. 비용에 가장 많은 영향을 미치는 공정 수율임. test는 레이더 타겟 시뮬레이터를 통해 검사를 진행.

3.4 Cal 공정 불량 자동분석 시스템

조립 공정의 입력 데이터와 최종 RF 성능의 출력 데이터 사이의 관계를 모델을 통해 추론하고 특정 기간의 공정 불량의 문제를 파악하고 이를 개선할 수 있도록 하는 것이 목표.

Ass'y 공정에 x인자와 Cal/Eol 고정의 y인자 간 회귀 모델 또는 상관관계를 파악하여 y인자가 상한치, 하한치를 넘어가기 전에 발생 가능한 불량 공정을 관리할 수 있음. 

출처: LGAimers / https://www.lgaimers.ai/

Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 이화여자대학교 강제원 교수님의 [지도학습(분류/회귀)] 강의에 대한 요약과 생각들을 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 또한, 강의의 모든 내용을 정리하기는 어렵기 때문에 인상깊었던 내용을 중심으로 정리하였습니다. 따라서, 설명의 맥락이 끊길 수도 있다는 점 양해 부탁드립니다. 

0. Introduction

part4부터는 supervised learning의 다른 종류인 classification 문제에 대해 살펴보았습니다. 그 중 첫번째로 classification의 가장 기본적인 방법론인 linear classification을 공부하였는데 linear regression과 유사한 형태이기 때문에 학습하는데 어렵지는 않았습니다. 강의는 크게 3가지 부분을 전달하였습니다. 첫번째는 linear classification의 기본적인 원리와 로직, 두번째는 linear classification model이 적절한지를 판단할 수 있는 손실함수들, 마지막으로 multi classification 문제를 살펴보았습니다. 

1. Linear Classification

linear classification model은 이전에 살펴본 regression을 위한 linear model과 그 형태가 유사합니다. 파라미터 w와 입력 feature인 x의 선형 결합으로 이루어진 형태로 w 벡터의 전치행렬(w.T)과 x 백터의 점곱으로 일반화할 수 있습니다. 다만, regression과의 차이는 model의 output이 연속형이 아닌 이산형이라는 점입니다. linear classification model은 sample들을 나누는 기준으로서 결정경계(decision boundary)라고 하며 초평면(hyperplane)이라고도 합니다. 가령, linear classification을 수행할 수 있는 hypothesis h(x)를 아래와 같이 정의한다면 이 선형 모델이 hyperplane이 됩니다.

출처: 강제원 교수님 강의자료

다음 그림을 보면 hyper plane을 기준으로 그 위쪽은 positive sample 그리고 아래 쪽은 negative sample들이 위치하고 있습니다. sample들을 매우 잘 구분한 hyper plane이라고 할 수 있습니다. 이 그림은 classification의 가장 단순한 가정을 보이고 있습니다. 오직 positive label과 negative label만 존재하는 이진분류(binary classification) 문제이고 linear classification model로도 충분히 분류 가능한 분포를 보이고 있습니다. 하지만 실제 현실에서는 linear model로 분류가 되지 않을 정도로 복잡한 경우가 많고 ouput 또한 3개 이상인 multi classification 문제들이 대다수입니다.

출처: 강제원 교수님 강의자료

우리가 찾고자 하는 target function f를 approximate할 수 있는 hypothesis h는 다음과 같이 표현될 수 있습니다. 파라미터 w와 입력 x의 선형결합에 사인함수(signum function)를 적용한 형태입니다. 아래 그림에서 sign function 안의 summation 옆에 있는 w0는 bias 값(또는 offset)으로 가상의 x0(=1)을 곱해주는 것으로 하여 summation 안으로 넣어 정리할 수 있습니다. 이렇게 하면 w.T와 x의 곱으로 간단히 표현할 수 있고 이를 sign function의 input으로 넣어주게 됩니다. 오른쪽 sign function에 따라 w.Tx의 값이 양수이면 1(positive sample)을 반환하고 음수이면 -1(negative sample)을 반환하게 됩니다. 이런식으로 주어진 sample들을 각 label로 classification할 수 있게 됩니다. 

출처: 강제원 교수님 강의자료 / Wikipedia 

 linear classification model은 하이퍼파라미터 w값에 따라 다른 선형 hyper plane이 그려지게 됩니다. 따라서 w값에 의해 잘못된 classification결과가 도출되기도 합니다. 따라서, model이 예측한 결과의 error를 계산하고 평가할 수 있는 metric들이 필요합니다. 이를 위해 score와 margin의 개념을 살펴보아야 하는데 'score'은 모델의 ouput으로서 예측 결과에 대해 얼마나 확신할 수 있는지를 보여주며, 'margin'은 그 예측값이 얼마나 correct한지 보여줍니다.

가령, 아래의 상황을 가정해볼 수 있을 것입니다. 입력 데이터 x, 타겟 레이블 y(1 또는 -1)이 주어졌을 때 결정경계 h(x)에 따라 4가지 경우의 수가 생길 수 있습니다. case1과 4는 margin값이 양수로서 예측값과 실제값이 같도록 올바르게 분류한 hyperplane입니다. 반면 case2와 3는 margin값이 음수로서 잘못 분류한 hyperplane입니다. 

case score y margin(socre x y) correctness
1 +1 +1 (+) correct
2 -1 +1 (-) not correct
3 +1 -1 (-) not correct
4 -1 -1 (+) correct

2. Loss Function

 

2.1 Zero-one Loss

zero-one loss는 내부의 logic을 판별하여 맞으면 0을 틀리면 1을 출력하는 손실 함수입니다. 아래 왼쪽 식을 보면 model이 예측한 predicition값인 f(x)와 실제 target label인 y가 같지 않으면 1을 반환하게 됩니다. 위에서 살펴본 'score'과 'margin'의 개념을 적용해 보면 왼쪽의 식처럼 loss function을 일반화할 수 있습니다. 'score'값과 y값을 곱한 'margin'이 0보다 작거나 같으면 1을 반환하고 0보다 크면 0을 반환하는 것입니다. 즉, classification을 잘 수행하는 model일 경우 error가 0이며 반대로 classification을 잘 하지 못하는 부적합한 model은 error가 1이라고 간단히 이야기할 수 있습니다. 

일반적으로 training의 과정은 loss function을 최소화하는 과정이라고 할 수 있습니다. 이를 위해 우리는 보통 gradient descent 방식을 적용하여 gradient가 0이 되는 지점을 향해 학습합니다. 하지만 지금의 zero-loss-function을 아래 오른쪽과 같이 미분을 했을 때 거의 대부분의 지점에서 gradient가 0이 됩니다. 따라서, model을 조정하는 학습의 과정을 거치지 못하게 됩니다. 따라서 이러한 문제를 해결하기 위해 다음에 살펴볼 Hinge Loss가 등장하게 됩니다. 

출처: 강제원 교수님 강의자료

2.2 Hinge Loss

출처: 강제원 교수님 강의자료

hinge loss는 (1- margin)값과 0 중 max값을 출력하는 loss function입니다. 앞서 살펴본 결과 우리는 model의 예측과 실제값이 같은 경우 즉, 정답인 경우에 'margin'은 1이 되고 틀린 경우 -1이 됨을 알고 있습니다. 그렇다면 hinge loss의 경우 이렇게 정리할 수 있을 것입니다. 정답을 맞춘 경우에 (1-margin)은 0보다 작기 때문에 hinge loss의 max 결과는 0을 출력하게 됩니다. 반대로 정답이 못 맞춘 경우에는 (1-margin)이 0보다 크기 때문에 hinge loss는 1-margin을 리턴하게 됩니다. 이를 그래프로 표현하게 되면 아래 그림의 초록색 선과 같을 것입니다.(그래프에서는 x축이 1-margin이 아닌 그냥 margin이기 때문에 1을 기준으로 값이 바뀌게 됩니다.) 이렇게 되면 우리는 gradient descent를 적용하여 학습할 수 있게 됩니다. 

출처: 강제원 교수님 강의자료

2.3 Cross-Entropy Loss 

cross-entropy loss는 정보 이론에 기반한 loss function으로 여기서 cross-entropy는 불확실한 정보의 양을 토대로 최적화하는 작업이라고 할 수 있습니다. Kullback-Leibler 발산과 같은 원리를 가지며 위에서 살펴본 classification의 모델들이 내놓은 예측 label들이 얼만큼 틀렸는지를 entropy로서 확인하는 것입니다.  그에 따라 모델이 예측한 정보에 대한 probability mass function(pmf)의 차이를 비교하게 됩니다. binary classification의 경우 2개의 pmf를 비교하게 되는데 각각 p와 q라고 가정하였을 때 p와 q가 서로 유사하면 loss가 줄어들게 되고 반대로 p와 q가 다르면 loss값은 커지게 됩니다. 아래 식은 binary classification 문제에서 cross-entropy loss를 계산하는 식이 됩니다. 

출처: 강제원 교수님 강의 자료

cross-entropy loss는 pmf 확률값을 사용하게 되는데 우리가 모델을 통해 계산하게 되는 score값은 확률이 아닌 실수값입니다. 따라서, cross entropy loss를 계산하기 위해 실수 score값을 확률값으로 mapping할 필요가 있습니다. 이때 사용할 수 있는 것이 로지스틱 모델 함수라고도 불리는 sigmoid함수입니다. sigmoid함수는 입력값을 0과 1사이의 값으로 출력하는데 도움을 줍니다. 아래 왼쪽은 sigmoid 함수의 그래프를 보여주고 있습니다. sigmoid 함수를 통해 오른쪽과 같이 class 0과 class 1에 대해서 각각의 확률값을 계산할 수 있게 됩니다.  

출처: (좌) https://38402160.tistory.com/39 / (우) 강제원 교수님 강의자료

아래 그림을 보면 cross-entropy loss를 더 간단히 이해할 수 있습니다. 왼쪽의 값들은 모델의 예측에 대한 확률의 분포입니다. 오른쪽은 실제 정답에 대한 확률의 분포입니다. 가령, onehot encoding으로 표현된 실재값이 [1, 0, 0]이라고 가정하고 예측값이 [1, 0, 0]인 경우 이때의 loss는 0됩니다. 하지만 [0, 1, 0], [0, 0, 1]과 같이 실재와는 전혀 다른 분류를 할 경우에는 무한대에 가까운 loss를 가지게 됩니다. 

출처: 강제원 교수님 강의자료

3. Multiclass Classification 

지금까지 살펴본 예시들은 이진분류(binaryclass Classification) 문제들입니다. 그러나 실제로는 많은 class들이 존재하는 multiclass classification 문제들이 다수를 이룹니다. multiclass classification을 python으로 구현하기는 너무 복잡하기에 일반적으로 binary classification을 확장하여 multiclass 문제를 해결하게 됩니다. 이를 one vs all 또는 one vs rest 방식이라고 합니다. scikit learn에서는 multiclass 문제를 binary classification  문제 여러개로 나누어 해결을 하게 됩니다. 

출처:&nbsp;https://towardsdatascience.com/multi-class-classification-one-vs-all-one-vs-one-94daed32a87b

 

출처: LGAimers / https://www.lgaimers.ai/

Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 서울대학교 이원종 교수님의 [비지도학습] 강의에 대한 요약과 생각들을 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 또한, 강의의 모든 내용을 정리하기는 어렵기 때문에 인상깊었던 내용을 중심으로 정리하였습니다. 따라서, 설명의 맥락이 끊길 수도 있다는 점 양해 부탁드립니다. 

0. Introduction

개인적으로 이번 LGAimers 강의들 중에서 가장 흥미로웠던 파트는 [비지도학습] 부분이었습니다. 기존에 제가 알고 있던 비지도학습에 대한 내용보다는 최근 연구되고 있는 representation learning에 대한 내용이 주를 이루고 있어 조금 당황스러웠지만 교수님께서 일반인들도 들을 수 있게 최대한 쉽게 설명해주셔서 이해하는데 큰 무리는 없었습니다. 강의에서 학습한 내용들은 비교적 최근에 연구가 진행되고 있는 분야라 현재 그리고 앞으로의 인공지능 연구 흐름을 살펴볼 수 있어서 굉장히 인상깊었습니다. 특히 교수님께서 기계학습/딥러닝의 representation에 대해 많은 시간을 할애하며 설명하시고 강조하셨는데 전체 강의를 다 듣고 나니 앞으로 인공지능에 있어서 정보를 잘 정리할 수 있는 representation learning이 얼마나 중요한지를 실감할 수 있었습니다. 최근 초거대 AI의 연구와 개발이 진행되고 있고 조금씩 성과를 드러내고 있는데 representation learning과 함께 생각해보면 앞으로는 주어진 input을 넘어 AI가 스스로 문제/task를 만들어낼 수도 있지 않을까 하는 생각이 들기도 했습니다. (아마도 이미 이런 연구가 진행되고 있을 수도 있을 것 같습니다.)

1. Unsupervised Learing in Traditional Machine Learning

전통적 기계학습에서 unsupervised learning은 feature의 개수가 적은 저차원의 데이터를 주로 다루며 이를 학습하는 algorithm들은 비교적 간단한 개념들로 구성되어 있습니다. 이러한 특징 덕분에 지금까지 unsupervised learning은 범용적으로 많이 사용되어 왔습니다. 하지만 전통적 기계학습에서 unsupervised learning model이 예측해낸 결과를 신뢰할 만한지에 대해서는 논란의 여지가 있습니다. 가령, 대표적인 비지도학습인 clustering을 살펴보면 algorithm이 묶어낸 군집들이 과연 의미가 있는지는 확신할 수가 없습니다. 따라서, 항상 cluster 결과에 대해 수치적으로 검증하는 절차를 반드시 거쳐야 합니다. 이러한 점은 우리가 기계학습의 unsupervised learning을 실제 application에 적용하는데 무리가 있을 수도 있음을 보여줍니다. 

2. Unsupervised Learing in Deep Learning

전통적 기계학습에서의 unsupervised learning과 달리 최근 딥러닝에서의 unsupervised learning은 이미지 또는 자연어와 같은 고차원의 데이터를 처리하기 시작하였습니다.  그럼에도 algorithm들은 이전과는 비교가 되지 않을 정도로 높은 성능을 보이지만 이를 구성하는 개념과 아이디어들은 이해하기 어려울 정도로 굉장히 복잡해졌습니다.

2.1 Feature Engineering vs Representation Learning

또한, 전통적 기계학습과 딥러닝에서 unsupervised learning이 보이는 차이점 중 하나는 정보를 생성하는데 인간의 개입이 현저히 줄어들었다는 것입니다. 강의에서 교수님은 feature engineering과 representation learning을 비교하여 설명해주셨습니다. 이 부분이 저에게는 굉장히 흥미로웠던 내용이었습니다.

출처: 이원종 교수님 강의자료

우리가 일반적으로 하고 있는 model 학습과 예측의 과정을 보면 다음과 같습니다. 우리의 목적은 관측 데이터인 X를 통해 y hat을 잘 예측할 수 있는 model f(x)를 학습하는 것입니다. 우리가 가지고 있는 데이터 X는 볼 수는 없지만 현실에서 존재하는 수많은 random variable들이 복합적으로 작용하여 만들어낸 관측치입니다. 여기서 random variable들을 y라고 할 수 있고 이 y는 비선형적으로 변수들이 구성되어 있습니다. y는 우리가 발견하기 쉽지 않은 영역이지만 domain knowledge를 통해 어느정도 유추가 가능합니다. 그리고 이렇게 유추한 사실과 내용들을 바탕으로 X를 가공하여 g1(), g2()...gl()과 같은 feature들을 만들어내게 됩니다. 이들 feature들을 가지고 model f(x)를 잘 학습하게 된다면 좋은 y hat의 결과를 얻을 수 있습니다. 이처럼 model이 잘 학습할 수 있도록 인간이 직접 필요한 정보들을 정리하는 과정을 feature engineering이라고 하며 실제로 우리가 기계학습을 할 때 많은 시간을 할애하는 영역이라고 할 수 있습니다. 

하지만, 딥러닝에서의 목표는 이러한 feature engineering의 과정을 컴퓨터에게 맡기는 것입니다. 즉, algorithm이 스스로 우리가 가지고 있는 데이터 X에서 중요하다고 생각되는 정보를 잘 정리하여 y를 뽑아내도록 하는 것입니다. 이렇게 만들어진 y는 간단한 model로도 충분히 좋은 성능을 도출할 수 있다는 것이 딥러닝의 핵심 아이디어입니다. 따라서, 인간이 해야 하는 것은 data를 직접 손 보는 것이 아니라 정보를 잘 정리할 수 있는 algorithm을 만들어 내는 것입니다.

3. Representation

강의에서 교수님은 representation learning에 대해 본격적으로 이야기 하기 전에 representation이 무엇인지에 대해서 설명해주셨습니다. 다양한 예시들을 통해 설명해주셨지만 저에게는 개념들이 추상적으로 다가왔고 여전히 representation이 무엇인지에 대한 질문에 두루뭉술하게 설명할 수 있을 뿐입니다. 그래도 강의에서 배운 내용을 최선을 다해 설명을 드리자면 다음과 같습니다. 제가 이해한 바로는 representation은 '정보의 일반화된 표현'이라고 정의할 수 있을 것 같습니다. 이 정의에는 '정보', '일반화', '표현' 이렇게 3가지 핵심 포인트가 있습니다. 

첫번째로 '정보'는 우리가 관측해서 얻어낸 데이터 또는 현상이라고 할 수 있습니다. 교수님은 이 점을 설명하시기 위해 ICML tutorial의 한 장면을 인용하셨습니다. 플라톤의 '동굴의 우상'을 시각화한 그림인데 여기서 우리가 주목할 점은 동굴 밖의 실제 상황을 우리는 직접 보지 못하고 오로지 동굴 벽에 그려진 그림자를 통해서만이 간접적으로 확인할 수 있다는 것입니다. 즉, '정보'는 이전 절에서 설명했던 바와 같이 데이터 X에 불과하고 algorithm이 찾아내야 하는 것은 그 이면에 있는 y인 것입니다. 

두번째로 '일반화'는 2가지 측면을 이야기할 수 있는데 하나는 인간이 아닌 컴퓨터가 이해할 수 있는 표현으로 일반화해야 한다는 것이고 다른 하나는 특정 task에 oriented된 표현이 아니라 어떤 task도 수행할 수 있도록 일반화된 representation이어야 한다는 것입니다. 일반적으로 feature engineering 과정에서 만들어진 representation은 인간은 이해할 수 있지만 컴퓨터는 이해하기 어려운 경우도 있고 또 인간이 디자인하였기 때문에 문제와 목적이 명확한 representation인 경우가 많습니다. 이러한 representation을 algorithm도 이해할 수 있고 수많은 task를 해결할 수 있도록 하는 것이 representation learning에서의 representation이라고 할 수 있습니다. 

마지막으로 '표현'은 말그대로 representation의 사전적 의미입니다. 수학에서의 representation은 개념을 수학적인 기호로 표현하는 룰이라고 할 수 있습니다. 만약 이를 일반화한다면 represenation은 정보를 어떻게 정리하고 표현할까를 고민한 결과라고 할 수 있습니다. 

이 세 가지를 종합해보면 representation의 개념과 representation learning의 목적을 확인할 수 있습니다. 제가 올바르게 이해했는지 그리고 이 글을 읽는 분들께 잘 전달이 되었는지는 잘 모르겠지만 한가지 분명한 것은 representation이 unsupervised learning 특히 deep learning 분야에서는 매우 중요하다는 것입니다. 

Info) 아래 포스팅은 LGAimers에서 제공하는 AI 전문가 과정 중 이화여자대학교 강제원 교수님의 [지도학습(분류/회귀)] 강의에 대한 요약과 생각들을 정리한 것입니다. 정리된 내용들은 강의를 토대로 작성되었으나 수강자인 저의 이해도에 따라 일부 틀린 부분이 있을 수 있다는 점 알려드립니다. 잘못된 점이 발견될 시에는 즉각 수정하도록 하겠습니다. 또한, 강의의 모든 내용을 정리하기는 어렵기 때문에 인상깊었던 내용을 중심으로 정리하였습니다. 따라서, 설명의 맥락이 끊길 수도 있다는 점 양해 부탁드립니다. 

0. Introduction

이번 part3에서는 지난 시간에 알아본 gradient descent에 대해 더 심도있게 내용을 알아보았습니다. gradient descent에서 발생할 수 있는 문제들을 해결하기 위한 다양한 변형들을 살펴보았는데 일부는 알고 있는 방법들이었지만 처음 들어본 최적화 기법들도 꽤 있었습니다. 이번 차시를 공부하면서 학계에 계신 수많은 machine learning 연구자 분들께 경외감을 느낄 수 있었습니다. 각 알고리즘들이 가지는 한계를 해결하는 방법들이 전혀 복잡한 접근법이 아닌데도 도무지 저로서는 생각하지 못할 아이디어들이었습니다. gradient descent 말고도 다른 machine learning 알고리즘들을 공부하다보면 발상을 뒤집는 접근법에 감탄을 금치 못할 때가 많습니다. 세상에 참으로 숨겨진 고수들이 많은 것 같아 괜시리 주눅드는 것 같습니다. 

1. Batch Gradient Descent vs Stochastic Gradient Descent (SGD)

gradient descent algorithm은 임의의 파라미터 theta에서 시작하여 loss function을 최소화할 때까지 theta를 계속 업데이트해 나가는 것입니다. 이때 theta를 업데이트하는 방식은 모든 데이터에 대한 오차 평균을 구하고 learning rate를 곱하여 새로운 theta를 구하게 됩니다. 이런식으로 theta를 업데이트 할 때 전체 데이터를 고려하게 되는 것을  batch gradient descent라고 합니다. batch gradient descent 방식은 몇가지 단점이 있습니다. 바로 한번 업데이트 시에 모든 데이터 샘플을 다 고려하여 계산해야 하기 때문에 계산 과부화가 걸릴 수 있다는 것입니다. 데이터 샘플의 수가 증가하게 되면 계산량이 증가하여 computational load가 생기게 되는 것이지요. 

따라서, 이러한 단점을 해소하여 조금 더 빠르게 iteration을 돌며 최적의 파라미터를 업데이트 해나가기 위해 한 샘플에 대한 오차만 계산하여 파라미터를 갱신하는 방법이 등장하였습니다. 우리말로 확률적 경사하강법이라고 불리는 stochastic gradient descent는 임의의 샘플 하나를 골라 이에 대한 오차를 계산하여 경사하강법을 진행하게 됩니다. 아래 식은 gradient descent의 각 파라미터 갱신을 표현한 것입니다. 여기서 m은 업데이트 시에 사용하는 데이터 샘플 개수 의미합니다. 가령, 우리가 가지고 있는 총 데이터 개수를 N이라고 하면 batch gradient descent에서의 m은 N이라고 할 수 있습니다. 반면, stochastic gradient descent에서의 m은 극단적으로 1로 설정하여 계산한 것이라고 볼 수 있습니다. 

출처: 강제원 교수님 강의자료

이처럼 stochastic gradient descent 방식은 계산량이 줄어들어 빠르게 수렴할 수 있다는 장점이 있지만 데이터 샘플 하나씩만 가지고 업데이트를 진행하기 때문에 만약 데이터 샘플에 noise가 존재하게 되면 완만하게 수렴하지 못하고 이리저리 왔다갔다하며 수렴하게 됩니다. 조금은 비효율적인 경로를 거치며 최소점을 탐색하게 되는 것입니다. 아래 그림이 이를 잘 보여주고 있습니다. 

출처: https://blog.superannotate.com/guide-to-gradient-descent-algorithms/

2. Some ideas to avoid local minimum

이전 차시 수업에서 gradient descent algorithm은 지역해(local optimum)에 빠질 수 있는 한계가 존재한다고 배웠습니다. 특히 error surface가 복잡할 경우, 초기 파라미터 값 theta가 어디서 부터 시작하느냐에 따라 global optimum으로 수렴되지 못하고 saddle point나 local minimum에서 학습이 멈출 수 있게 됩니다. 이를 해결한 momentum 방법을 시작으로 이후에도 지속적으로 시간을 단축하고 올바른 방향으로 향하여 효율적인 최적화할 수 있는 다양한 optimization 방법들이 등장하였습니다. 아래에서 몇가지 살펴보도록 하겠습니다. 

2.1 Momentum

stochastic gradient descent 방식이 기존의 gradient descent 보다는 빠르지만 그래도 여전히 느리고 비효율적인 경로 탐색을 할 수 도 있기 때문에 이를 보완하기 위한 momentum 방식이 등장합니다. momentum은 '관성'을 통해 이동 방향과 속도를 조절하는 방식으로 현재 위치한 지점에서 gradient값이 0이 되더라도 과거의 gradient가 업데이트 되어오던 방향과 속도를 기억하고 반영해 계속 학습이 진행될 수 있도록 하게 됩니다. momentum은 지수적으로 가중치가 더해지는 방식을 적용하며 아래 식과 같이 표현됩니다. g(기울기/gradient)가 t(시간)에 따라 누적되는 모습을 보이고 있는데 g에 곱해지는 rho값(가중치)은 0과 1사이의 값이기 때문에 지수승이 될수록 점점 더 작아지게 됩니다. 따라서, 먼 과거의 gradient 값일수록 더 작아지며 영향을 덜 미치게 됩니다. 여튼, 현재의 이동방향에 과거의 momentum값들을 반영하게 되므로서 혹여나 gradient값이 0이 되더라도 계속 학습을 이어갈 수 있게 됩니다. 

출처: 강제원 교수님 강의자료

2.2 Nesterov Momentum

nesterov momentum 방식은 기존의 momentum 방식과는 다른 순서로 gradient값을 계산하게 됩니다. 일반적인 momentum 방식에서는 현재의 gradient값에서 '관성' 즉 과거의 momentum을 계산하는 방식이라면 nestrov momentrum에서는 '관성' momentum값으로 먼저 이동후에 그 곳에서 gradient값을 반영하게 됩니다. 즉, 현재의 gradient값과 지난 momentum의 적용 순서를 서로 달리한 차이라고 할 수 있습니다. 이렇게 순서를 달리한 nesterov momentum 방식을 'lookahead gradient'라고도 하며 기존의 momentum 방식보다 더 빠르고 성능이 우수하다고 알려져 있습니다. 아래 링크를 통해 들어가시면 지금까지 수많은 머신러닝/딥러닝 책들을 번역해 오신 박해선 저자님께서 일반적인 momentum과 nesterov momentum에 대해 자세히 비교하여 설명한 글을 읽을 수 있습니다. 정말 상세하게 정리되어 있기 때문에 많은 참고가 될 것입니다. 

https://tensorflow.blog/2017/03/22/momentum-nesterov-momentum/

 

Momentum & Nesterov momentum

경사하강법gradient descent 최적화 알고리즘의 한 종류인 모멘텀momentum과 네스테로프 모멘텀nesterov momentum 방식은 여러 신경망 모델에서 널리 사용되고 있습니다. 비교적 이 두가지 알고리즘은 직관

tensorflow.blog

2.3 AdaGrad

앞서 살펴본 momentum에 대한 2가지 algorithm은 학습을 할 때의 탐색 방향을 조절하는 방식입니다. 가능한 이상한 길로 새지 않고 효율적인 경로를 따라 최적의 포인트를 찾아가기 위한 것이 주된 목적입니다.  그에 반해 이제부터 살펴볼 algorithm들은 learning rate를 조절하여 학습 속도를 최적화하는 방식이라고 할 수 있습니다.

그 중 첫번째는 Adaptive Gradient라고 부르는 Adagrad algorithm입니다. adaptive라는 말에서 유추할 수 있듯이 adagrad는 학습이 진행됨에 따라 learning rate를 적응적으로 조절하여 학습의 효율을 높이는 방법입니다. 지금까지 갱신 및 학습이 많이 되어 누적된 gradient 값이 크다면 learning rate를 낮추어 학습의 속도를 줄이게 됩니다. 반대로 학습이 많이 진행되지 않아 누적된 gradient 값이 작다면 learning rate를 높여 학습 속도를 높이게 됩니다. 즉, 현재까지의 학습 현황을 반영하여 이후의 학습을 진행하는 적응적인 방식이라고 할 수 있습니다. 아래 식은 adagrad에서 어떻게 learning rate를 조절하는지 보여주고 있습니다. 누적된 g의 제곱값이 분모로 들어가 delta theta를 조절하는 것을 확인할 수 있습니다.

출처: 강제원 교수님 강의자료

2.4 RMSProp

adagrad 방식은 g값이 계속 누적됨에 따라 learning rate가 작아지게 되는데 이 때문에 학습이 진행되지 않는 단점이 있습니다. 이를 개선한 RMSProp 방법이 등장하였는데 rmsprop은 가중치를 주어 learning rate가 극단적으로 0으로 수렴하는 것을 방지해줄 수 있습니다. 위 그림 왼쪽을 보게 되면 rmsprop은 adagrad에서 r과 g의 제곱에 각각 weighted decay에 해당하는 rho와 (1-rho)를 곱한 것밖에 차이가 없지만 이렇게 함으로서 학습속도를 적절히 조절할 수 있게 됩니다.  

2.5 Adam

Adam optimizer는 RMSProp와 Momentum을 혼합한 방식으로 momentum에서 계산된 첫번째 moment와 RMSProp에서 계산된 두번째 moment를 편향 보정하여 파라미터를 업데이트하는데 활용하는 것입니다.  

이상으로 part3를 마치도록 하겠습니다. 위에서 살펴본 optimization 기법들 외에도 수많은 변형들이 있는데 나중에 기회가 되면 열심히 공부해서 정리해보도록 하겠습니다.

출처: LGAimers / https://www.lgaimers.ai/

+ Recent posts