[포스코 x 코딩온] 스마트팩토리 개발자 과정 14주차 | SME WEEK TIL (1)

배돌·2023년 4월 10일
0

2023-04-04 포항 apple

머신러닝

2023 04 04
제네럴한 이야기들 위주로
인공지능, 머신러닝, 컴퓨터 비전에 대한 기초적인 지식.
오프닝
머신러닝 소개
컴퓨터 비전 소개 & 제조업 활용 예씨
점심 시간
apple Aoi 소개 & 컴퓨터 비전 활용 실습
머신러닝 활용 실습
컴퓨터 비전 & 머신러닝 활용 실습
마무리 & 수업 후 설문
오후에 실행될 거는 애플 생태계 기반으로 시작
갤럭시, 윈도우 생태게도 가능 ( 녹화하고 있어서 ^^ )
마신러닝 개요
알파고
데이터 -> 데이터 설비, 그리고 설비끼리 연결되고
구글 딥마인드 - 영국회사
대중적인 인식에 도움이 된다
1950~1970
인간이 할 수 있는걸 기계도 할 수 있도록
인공지능,머신러닝, 딥러닝
★★★★★★★★★★
머신러닝
컴퓨터가 경험을 통해 학습하도록 프로그래밍할 수 있다면 세세하게 프로그래밍해야 하는 번거러움에서 벗어날 수 있다.
전통적 프로그래밍
데이터,규칙 입력 -> 정답 도출
1. 규칙이 내가 뭔지 알아야함.
2. 규칙을 컴퓨터가 알아들어야함.
규칙을 아는사람이란? 프로그램을 만들었던사람
이거이거 만들어줘 하고 요구해야함
버그가있다? 그거를 재정립하고 다시 수정하고 해야함
근데? 세상이 바뀌었다!
머신러닝,딥러닝, 최신의 거시기들
데이터,정답 입력 -> 규칙 도출
어라 그럼 규칙을 만들어 내는 사람은 위험해지는거 아니야?
지도학습(기존의 방식), 비지도학습
필요한건, 압도적인 데이타량, 데이타라벨링.
전통적 방식 -> 인간이 똑똑해야함
머신러닝 -> 인간이 부지런해야함
오늘 간략한 알고리즘들 검증,실습
(사진)
머신러닝(기계학습)
비지도학습 - 데이터만 있다.
지도학습
강화학습 - 이번에는 패스. 알파고의 경우.
데이터 많다. 근데 알고보니? 라벨링 안된, 분류가 안된 데이터만 있었다. 실직 데이터는 없던거나 마찬가지.
어떤 상황에 대해 a값을 입력했을때 b 가 나온 , 어떤 과정들에 대한 값의 입력과 도출에 대한 데이터가 필요함.
인공지능모델, 일반적으로 지도학습이 비지도학습보다 성능이 좋다. 하지만? 통계에 100퍼는 없다.
지도학습-회귀(Regression)
출력데이터가 연속적인 값
새로운 입력데이터에 대한 출력 데이터의 값 예측
변수들 간의 관계를 추정
그래프의 점간의 선을 찾는게 회귀
지도학습-분류(Classification)
출력 데이터가 이산적인 값일 때
새로운 입력 데이터가 어떤 클래스에 속하는지 결정하기 위한 분류 알고리즘 개발
분류 경계를 결정
차원이 높아지면(비교 해야할 원소들이) 회귀도 분류도 어려워진다
선형분류,비선형 분류
분류가 어려울때 -> 추가적인 정보로 세부 분류를 더 들어간다
데이터 사이언티스트
날 데이터 값을 주어진 값이고 이거로만 해야해 하는 생각을 버려라. 다른 가능성이 있는 데이터
머신러닝 핵심 요소
데이터(Data) 머신러닝의 입력 : 머신러닝을 통해 답을 찾고자 하는 대상

  • 다양한 형태의 데이터를 입력으로 사용 가능
    - 이미지, 영상, 소리, 그래프, 텍스트
    예시 : 두가지 데이터가 있다고 가정. 비정상, 정상일때 레이블링을 통해 구분.
    만개의 데이터를 받아서 정상, 만개의 데이터를 받아서 비정상 이라고 할 수 있다.
    → 만개를 다 쓸 필요가 있나?
    데이터 분석을 관련 공부를 처음 할 때 가장 자주 접하는 단어가 바로 피처(feature) 입니다. 피처는 데이터의 특성을 나타내는 것으로 데이터 표에서 열(column)을 지칭
    합니다
    피쳐링을 잘해야 분류가 쉬워진다.
    이게 맞는지 아닌지도 모른다 → 딥러닝
    물리적인 의미를 알고 다 알아. → 나의 지식과 지표를 이용해서 결과값만으로 판단 → 머신러닝.
    결국 상황에 맞게 써야한다.
    현업의 사람들에게 살짝의 위기가 온건 맞다. 포스코의 철강이다 → 철강프로세스를 모르니 해결도 못한다. but, 데이터를 받고, 딥러닝을 좀하면? 가능할 수 도있다
    머신러닝, 딥러닝 구현을 했다.
    결과가 잘나오면 모르겠는데 잘 안나왔다.
    개선을 해야함. 어떻게 해야하나? 데이터를 더 넣는다. 다시 트레이닝 해야한다. 피쳐링 다시해야한다.
    머신러닝이 모델은 가볍다. 데이터는 딥러닝이 더 많아야한다.
    내가 장단을 안다하면? 머신러닝을 하는게 이득이다. 딥러닝 할 필요가 없다!
    Q. 전문가는 데이터를 보고 판단할 수 있다. 전문가들도 못하는 문제를 해결하기 위해 AI를 도입해서 딥러닝을 이용하는게 맞나? 딥러닝은 안하고싶다. 데이터가 너무많고 돌려야할 비용이 너무 많을 수도 있고
    A. 제조쪽이면 머신러닝 쪽이 적합하다 생각한다. 정상이면 문제가 없는데 비정상일때 물건의 구분보다도 어디서 문제가 생겼느냐가 제일 중요하다. 하지만 이건 모든 기업이 다 중요시여기는 과제다. → 아직 힘들다…
    우리가 아는 선에서 머신러닝, 딥러닝이란 상관관계를 보는 역할이다.
    원인과 결과를 보는거라고 착각할 수 있다.
    X데이터, Y데이터 있다고 가정.
    X가 커지니까 Y도 커짐. X가 작아지니까 Y도 작아짐.
    Y값을 컨트롤 하고 싶다. X값을 줄여봐야겠다. 내가원하는 Y값도 줄겠지?
    → 반대일수도 있다. Y가 X에 값을 미치고 있었을 수도.
    데이타만으로 판단하기는 쉽지않다. 종합적으로 판단하고 고려할 무언가가 있어야 보이지 않을까 한다.
    Q. 펌프 하나에 대한 피쳐링 데이터들은 여기저기서 쌓이고 있을텐데 오픈소스의 데이터들은 존재하는가?
    A. 물론 있다. 다시 말하지만 데이타로만 해결하는 상황은 옳다 생각하진 않는다. 하지만 오픈하고 여러가지 시도를 하는 곳들은 있고. 다만 좀 찾아봐야 하는 것은 맞다ㅏ.
    공장에 펌프가 100대가 있다. 같은 제조사. 만약 펌프가 고장이 나면 상태를 모니터링 할 필요는 있을 것이다. 매니저,보스가 상태를 미리 감지하는 AI시스템을 꾸며봐 하고 지시를 내려본다. 분류가 문제구나, 그래서 어떤 센서를 달아서 이차저차해서 모델을 만든다. 실험했고 잘된다. 전개해 → 똑같이 깔았다. 잘 될거라고 생각하나? 개뿔.
    적용되는 구간마다, 특성마다 다 다르게 적용된다.
    모델(model)
    인공 신경망구조(artificial Neural Network) - 딥러닝
  • 현재 머신러닝의 모델로 가장 많이 사용되는 구조
  • 입력과 출력 사이에 은닉층을 두고 각 층 사이의 연결을 통해 규칙을 학습
  • 딥러닝 : 은닉층의 수를 늘려 깊게 만든 인공 신경망 구조
    데이터준비
    데이터분리
    데이터 세트 = 전체 데이터
    100개의 데이터가 있을때, 70개의 데이터만으로 훈련, 30개의 데이터를 검증에 써서 이것이 잘 작동하는가 판단. 통상적으로 6:2:2 or 8:1:1
    Q. 인자값을 바꿔가면서 하면 되지않나?
    A. 쉽지가 않다. 제조업에서는 말이 안된다.
    공장에서 제품 마지막단에 제품을 사진을 찍던가 해서 그룹화 해야한다 치면 보여줘야할 제품군이 러프하고 최소 실패 50 성공 50이어야한다. 99성공 1실패로 데이터를 넣는다하면? 컴퓨터는 100퍼센트라고 판단하게된다.
    제조공정에서 AI는 마지막에 고려하는 옵션정도라 생각한다.
    학습 (Training)
  • 훈련 세트의 데이터를 활용하여 모델 학습
  • 필요할 경우 같은 데이터에 대해 여러 번 반복
    포스코가 지난 2년차 데이터를 줬고 학습된 모델을 줬다 치자. 잘됨. 6개월 지난다. 잘 안된대. 왜냐? → 상황이 변했으니까!
    부품도 교체하고, 다른걸 생산할 수도 있고. 측정하는 데이터는 변하지만 내 모델은 그대로!
    지속 발전가능한 AI를 만들어라 → 이론상 그러면 좋긴하지만…!
    6개월 후 업데이트.
    인공지능 모델은 진화해야한다. WHY? 데이터가 바뀌니까.
    요새는 구독으로 판다.
    모델을 업데이트 해주는건 외부업데이트. → 데이터가 나가야한다.
    국내에서 데이터를 돌릴 클라우드 회사 몇 없음. 자기들이 살아남을려고 클라우드 돌리기 시작함.
    일들이 복잡해지기 시작해서 안에서 해결할 문제는 거의다 해결됐고 외부와 공조가 필요한 일들 만 남아 있다.
    검증(Validation)
  • 학습이 잘 진행되고 있는지 확인하는 과정
  • 학습 과정 중 검증 세트의 데이터로 성능 측정
    • 성능이 이전 검증에 비해 증가 - 학습 지속
    • 성능이 여러 검증 동안 증가하지 않거나 오히려 감소 - 학습 종료
      • 과적합(Overfitting) : 훈련 세트에 대해 지나치게 학습이 되어 훈련 세트에 있지 않은 일반적인 데이터에 대해서는 성능이 오히려 하락하는 현상

        → 트레이닝 된 것에만 최적화된 상황

내 모델이 과적합인가 아닌가 ★★★★

미지수의 개수보다 식이 더 많은 경우 일반,평균적인 값을 알 수 있다.
인공지능을 학습할 때는 대충 해야한다. 특히 머신러닝보다 딥러닝에서.
파라미터 갯수가 훨씬 많기 떄문.
평가(Evaluation/Test)
성능 개선

  • 데이터
    • 학습을 위한 데이터 추가 수집
  • 모델
  • 데이터 예측 단계에서 처리시간이 적절한지 확인 필요
    - 성능과 처리 시간 사이의 균형
    데이터 이외에 지식으로 고민을 해보는게 좋다 생각함
    데이터 증강(Data Augmentation)
  • 기존 데이터를 변형하여 학습 데이터의 양을 늘리는 과정
    • 이미지의 경우 회전, 반전, 대비 조정, 자르기 등의 방법 존재
  • 데이터 불균형 문제 해결에 도움
    장점 : 돈이 안든다. 원래 있던 데이터의 가공일 뿐이니까.
    그런데 진동이라던가 소리같은 파동은? 그것도 가능한가?
    머신러닝 전체 흐름
    데이터 준비 → 모델개발 → 학습&검증 → 학습완료된 모델 → 평가 → 결과 → 비추 → 다시 데이터준비,모델개발 → 학습&검증 → ….
    언제까지? 고객이 만족할 때 까지.
    머신러닝 예시
    카메라를 찍어서 숫자를 인식
    소리 분류( 인간이 들을 수 없는 주파수도 가능 ) → 튜닝이 어렵다. 관련 데이터를 찾아야함
    이미지 전처리
    성능이나 효율을 높이기 위해 이미지에 가하는 추가적인 처리
    노이즈를 일부러 넣는 경우 : 그런 환경에서도 잘 적응하도록 (실전환경조성)
    물체인식
    3D비전
    한쌍의 스테레오 카메라
  • 같은 장면에 대해 여러개의 시점을 제공하여 모호함 해소
  • 빛의 전파 시간(ToF)을 사용하여 깊이 정보를 파악하는 센서
  • RGB-D(depth) 카메라, LiDAR(Laser Imaging Detection and Ranging
    러프하게 목적지까지 로봇팔을 보내고 카메라로 세부조정.
    부품조립
    Apple AOI
    총 3개
  1. 비전을 가지고 막대기 검사
  2. 머신러닝 활용 불량검사
  3. 비전,머신러닝 결합 → 어떤 레고인지 분류
    apple automated optical inspection
    ios 어플리케이션
    iphone을 카메라 기기와 ML 엔진으로 활용
profile
스마트팩토리 지향 누-비

0개의 댓글