상세 컨텐츠

본문 제목

23.04.21(금) Apple 스마트 데이터 랩 교육 회고| 머신러닝과 비전

본문

 이번 포스팅은 Apple 스마트 데이터 랩에서 진행되었던 머신러닝과 비전 교육에 대한 회고이다. 목차는 아래와 같다.

 

 1. 머신러닝 개요

  •인공지능의 발전 순서

  •머신러닝

  •머신러닝의 갈래

  •회귀

    - 선형 회귀, 비선형 회귀

  •분류

    - 선형 분류, 비선형 분류

 

 2.머신러닝 핵심요소

 3.머신러닝 과정

 4.Create ML을 활용한 예시

 5.컴퓨터 비전

 6.제조업 현장에서의 예시

 7.Apple AOI를 활용한 예시

 8.비전과 ML을 결합한 예시

 9.결론

 

 1. 머신러닝 개요

 머신러닝을 배우려면 먼저 어떤 순서로 '인공지능(Artificial Intelligence)'이 발전했는지에 대한 이해를 하고 넘어가야한다. '인공지능'은 1950년대~70년대에 시작된 개념이다. 인간의 지적 능력이 필요한 작업을 수행하는 기계 또는 프로그램을 만들어서 인간이 할 수 있는 걸 기계도 할 수 있도록 하려는 시도였다. 그러나 '인공지능'의 경우 일일이 상황에 대한 동작을 지정해줘야 하는 번거로움이 있었다. 이를 개선하고자 1980년대~2000년대에 대두된 개념이 '머신러닝'이다. '머신러닝'은 상황에 대한 동작을 일일이 지정하는 대신 스스로 학습하여 대응하도록 하는 방법론으로 과거 인공지능을 통해 얻은 경험을 토대로 더 나아간 방법론이었다. 그 후에 등장한 개념이 바로 '딥러닝'이다. '딥러닝'은 다양한 머신러닝 알고리즘 중 인공 신경망을 기반으로 하는 시스템이다. 그러나 초기에는 처리 속도와 능력이 좋은 컴퓨터를 구비하기가 힘들어서 보급이 어려웠다. 시간이 흐른 후 컴퓨터 기기의 성능 향상과 최적화가 이뤄짐으로써 '머신러닝'에서 '딥러닝'으로의 발전이 성공적으로 이뤄지게 된다. 이제는 Chat GPT의 사례에서 알 수 있듯이 폭발적인 발전과 함께 실생활에서도 다양하게 적용되고 있다.

 

 그렇다면 머신러닝은 뭘까? 이에 대한 답은 AI 연구의 선구자, Arthur Samuel의 말에서 알 수 있다. "컴퓨터가 경험을 통해 학습하도록 프로그래밍할 수 있다면 세세하게 프로그래밍해야 하는 번거로움에서 벗어날 수 있다". 즉, 데이터와 정답을 머신러닝 프로그램에 입력하면 규칙을 발견할 수 있도록 프로그래밍하는 것이다. 이를 통해 컴퓨터는 경험으로 부터 학습을 할 수 있게 되는 것이다. 이 방법은 머신러닝의 갈래를 통해 실현된다.

 

 머신러닝의 갈래는 아래 사진과 같다.

 

 이 중에서도 회귀분류에 대해 정리하고 머신러닝의 핵심 요소로 넘어가겠다. 회귀는 출력 데이터가 연속적인 값들을 통해 변수들 간의 관계를 추정해서 새로운 입력 데이터에 대한 출력 데이터의 값을 에측하는 것이다. 다변량 회귀의 경우에는 선형 회귀와 비선형 회귀의 2종류가 있다. 둘은 데이터 그래프의 모양이 선형적이냐 아니면 선형적이지 않냐의 차이를 가진다.

 다음으로, 분류는 출력 데이터가 이산적인 값일 때 분류 경계를 결정함으로써 새로운 입력 데이터가 어떤 클래스에 속하는지 결정하기 위해 개발된 알고리즘이다. 선형 분류와 비선형 분류의 2종류가 있다. 둘은 데이터의 경계가 선형인지 혹은 선형이지 않은지의 차이를 갖는다.

 

 2. 머신러닝의 핵심 요소

 데이터, 레이블, 모델 그리고 인공 신경망 구조로 이뤄진다. '데이터'는 머신러닝의 입력을 담당하는 것으로 머신러닝을 통해 답을 찾고자하는 대상을 의미한다. 이미지, 소리, 영상, 그래프, 텍스트 등 다양한 형태의 데이터를 사용 가능하다. '레이블'은 각 데이터에 대한 정답을 의미한다. 같은 데이터에 대해서도 목적에 따라 다양한 종류의 레이블이 가능하다는 특징이 있다. '모델'은 머신러닝이 데이터의 레이블을 예측할 때 사용하는 시스템을 의미한다. 이때, 목적에 적합한 모델을 선택하는 것이 중요하다. 적합한 모델을 사용한 것인지 확인하고 싶다면 다양한 지표(오차, 정확도 등)를 통해 모델의 성능을 평가하는 것도 중요하다. 마지막, 인공 신경망 구조는 현재 머신러닝의 모델로 가장 많이 사용되는 구조이다. 입력과 출력 사이에 은닉층을 두고 각 층 사이의 연결을 통해 규칙을 학습시킨다. 발전한 형태인 '딥러닝'은 은닉층의 수를 늘려 깊게(Deep하게) 만든 인공 신경망 구조를 뜻한다.

 

 3. 머신러닝은 데이터 준비 -> 데이터 분리 -> 학습 -> 검증 -> 평가 -> 성능 개선 -> 데이터 증강 의 과정을 갖는다.

 데이터 준비는 학습과 평가에 사용할 데이터를 수집하는 과정인 데이터 수집, 목적에 적합하지 않거나 구분이 쉽지 않은 데이터를 걸러내는 과정인 필터링, 머신러닝이 데이터를 분석하기 쉽도록 수집한 데이터를 가공하는 과정인 전처리, 수집한 데이터에 레이블을 붙이는 과정인 레이블링의 총 네가지 과정을 겪는다. 데이터 분리는 수집한 데이터를 훈련/ 검증/ 평가 세 종류의 세트로 분리하는 과정이다. 이때, 하나의 데이터는 한 세트에만 포함되어야 정확한 검증과 평가가 가능하다. 순서에 대한 연관성을 최대한 배제할 수 있도록 무작위로 배치해야한다. 또한 데이터의 양에 따라 적절한 비율의 분리가 필요하다. 통상적으로는 6:2:2 ~ 8:1:1의 비율로 분리한다. 학습은 훈련 세트의 데이터를 활용하여 모델을 학습한다. 필요할 경우 같은 데이터에 대해 여러번 반복한다. 검증은 학습이 잘 진행되고 있는지 확인하는 과정이다. 학습 과정 중 검증 세트의 데이터로 성능을 측정한다. 이때, 성능이 이전 검증에 비해 증가하면 학습을 지속한다. 만약 성능이 여러 검증 동안 증가하지 않거나 오히려 감소한다면 과적합이 의심되므로 학습을 종료한다(과적합: 훈련 세트에 대해 지나치게 학습이 되어 훈련 세트에 있지 않은 일반적인 데이터에 대해서는 성능이 오히려 하락하는 현상). 성능 개선은 데이터와 모델 각각에 대해 이뤄지게 된다. 데이터에 대해서는 학습을 위한 데이터를 추가 수집, 수집 환경 조정 혹은 전처리 방법 변경, 데이터 불균형 해결 등의 방법을 통해 성능 개선이 이뤄진다. 모델에 대한 성능 개선은 모델(알고리즘) 변경, 크기 조절(인공 신경망의 경우 층 수, 뉴런의 수 등), 학습 변수 조정 등이 있다. 성능 개선 과정에서는 데이터 예측 단계에서 처리 시간이 적절한지 확인하는 것이 필요하다. 이는 성능과 처리 시간 사이의 균형을 이루기 위함이다. 데이터 증강은 기존 데이터를 변형하여 학습 데이터의 양을 늘리는 과정이다. 예를 들어 이미지의 경우에는 회전, 반전, 대비 조정, 자르기 등의 방법이 존재한다. 데이터 증강은 데이터 불균형 문제 해결에 도움이 된다. 

 

 4. Create ML

 Apple의 무료 개발자 도구 중 하나로 모델을 학습하는 복잡한 과정을 단순화 함으로써, 코딩을 하지 못하는 사용자도 쉽게 머신러닝을 접할 수 있도록 도와주는 프로그램이다. 사용하기 쉬운 인터페이스, 놀랍도록 빠르게 모델 생성이 가능하고 기기에서 모델을 사용할 수 있고 확장된 모델의 테스트와 확장이 간편하다는 특징이 있다. 이 단계에서의 실습은 사전에 준비된 이미지를 활용해 진행되었다.

 

 5. 컴퓨터 비전

 이미지 처리 및 이해, 이미지 전처리, 비전 알고리즘의 활용, 물체 인식, 물체 추적 및 행동 인식, 3D 비전으로 구성된다. 이미지 처리 및 이해 단계는 광학, 신호 처리, 수학, 컴퓨터 그래픽, 머신러닝, 최적화, 인지 과학의 방식으로 이뤄진다. 이미지 전처리 단계는 성능이나 효율을 높이기 위해 이미지에 가하는 추가적인 처리이다. 목적에 따라 전처리 방법이 상이하다. 또한 방법이나 사양에 따라 소요 시간 차이가 있기 때문에 전처리 범위를 결정하는 것이 필요하다. 이에 대한 예시로는 선명도 조절, 노이즈 조절, 회색조 변화, 색상 조절이 있다. 비전 알고리즘의 활용은 모서리, 윤곽선 등의 관심 지점의 검출, 세분화 및 그룹 분류, 이미지 복원, 이미지 변환에 적용되는 방식이 있다. 물체 인식은 물체(이미지) 분류-> 위치 식별 -> 검출: 위치 식별 및 분류 의 단계로 이뤄진다. 또한 컴퓨터 비전은 물체 추적 및 행동 인식이 가능하다. 3D 비전은 같은 장면에 대해 여러개의 시점을 제공하여 모호함을 해소하는 한쌍의 스테레오 카메라를 통해 이뤄진다. 이 한 쌍은 RGB-D 카메라, LiDAR(빛의 전파 시간(ToF)을 사용하여 깊이 정보를 파악하는 센서)로 구성된다.

 

 6. 제조업 현장에서의 예시로는

 부품 조립, 재고 관리, 재고 관리: 바코드, 얼굴 인식, 공정 상 결함 탐지가 있다. 

 

 7. Apple AOI

 Apple Automated Optical Inspection의 약자로 iOS 어플리케이션 중 하나이다. iPhone을 카메라 기기와 ML 엔진으로 활용할 수 있다. 카메라로 이미지를 촬영하거나 사진 라이브러리에서 저장된 사진을 선택할 수 있고 하나의 iOS 기기에서 다른 iOS 기기를 원격으로 제어 가능하다. 그리고 여러 검사 모듈을 제공한다. 이 검사 모듈을 통해 다양한 비전과 ML 기반 알고리즘을 사용할 수 있다. Apple AOI의 장점은 일반적으로 산업 분야에서 사용되는 카메라 전용 기기보다 경제적이고 모든 최신 iOS 기기에 구축된 강력한 뉴럴 엔진을 활용한다. 또한 새로운 AI 모델의 학습 및 평가를 간단하게 수행 가능하기 때문에 프로토타입 생성에 적합하고 ML 모델을 개발하고 개선하기 위한 기회를 제공한다. 그리고 훈련시킨 모델은 모든 분야에 쉽게 통합 가능하여 확장 가능하다. 마지막으로 Apple Core ML은 산업 표준 모델을 변환하기 위한 도구를 제공한다는 장점이 있다.

 

 8. 실습은 

 Create ML과 Apple AOI를 사용한 머신 러닝 및 비전 실습을 진행되었다.

 

 9. 결론적으로 정리하자면

 비전 알고리즘 및 머신러닝의 기본적인 방법을 교육을 통해 배웠다. 세 가지 활용 예시를 통해 비전 및 머신 러닝이 다양한 환경에서 사용할 수 있는 강력한 도구임을 확인할 수 있었다. 실제 산업현장에서 적용되는 알고리즘들은 앞서 배운 내용들을 기반으로 확장된 것이다. 따라서, 각각의 제조업 환경에 맞는 솔루션을 개발한다면 다양한 업종으로 확장할 수 있다는 것을 끝으로 내용 정리가 끝났다.

 

 교육 소감을 정리하자면

 평소 스마트팩토리에 관심이 있었던 터라 지원하게 되었던 머신러닝과 비전 코스 교육이었다. 얼마나 많이 배워갈 수 있을까 반신반의 했던 교육이었지만 막상 교육을 마치고 나니 굉장히 의미 있는 시간이었다. 특히 이론으로만 배우고 그치는 것이 아니라 실제 Apple 제품들을 사용해서 머신러닝과 비전에 대한 실습을 진행해볼 수 있었던 점이 다른 교육들과 다른 점이라고 생각한다. 또 실습을 단순히 주어진 교보재만을 활용해서 진행 하는 것이 아닌 교육생들이 사용해보고 싶은 물건들을 사용해서 진행할 수 있도록 도와주셔서 더 좋았다. 현재, 해당 교육의 경우에는 중소기업 재직자만이 대상인 것으로 알고 있는데도 ‘교육생들이 취업을 통해 전국의 중소기업에서 활동하면서 오늘 교육을 통해 배운 내용들을 토대로 발전할 수 있다면 그것이 진정으로 의미있는 교육’ 이라며 교육을 받을 수 있도록 허락해주신Apple 제조업 R&D센터 관계자분들께 감사하다는 말씀을 드리고 싶다. 하나의 랩에서 2개의 교육 과정이 있는 것으로 알고 있는데 다른 교육도 기회가 된다면 꼭 받고 싶다. 스마트팩토리에 관심이 있는 구직자로서 매우 뜻 깊은 교육 시간이었다.

관련글 더보기