Neural architecture search (NAS)

μ„œμœ λ¦¬Β·2023λ…„ 3μ›” 3일
0

NAS

λͺ©λ‘ 보기
1/1

πŸ”΄ 유튜브 μ˜μƒ μ‹œμ²­
: ꡬ글 ν΄λΌμš°λ“œμ—μ„œ κ°•μ—°ν•œ NAS에 λŒ€ν•œ μ˜μƒμ„ μ‹œμ²­

🟠 μ˜μƒ λͺ©μ°¨

  • μ•„λž˜μ˜ μˆœμ„œλŒ€λ‘œ λ°œν‘œκ°€ 진행됨
    (1) NASλž€ 무엇인지
    (2) NAS buliding blocks
    (3) NASκ°€ μ–΄λ–»κ²Œ μž‘λ™λ˜λŠ”μ§€
    (4) NAS의 강점, μ„±λŠ₯
    (5) NAS의 μ‚¬μš© 사둀
    (6) μš”μ•½

🟑 NASκ°€ λ‚˜μ˜¨ 계기

  • 2007λ…„ ꡬ글 브레인 νŒ€μ€ κΈ°κ³„ν•™μŠ΅ μ‹œ, ν™•μž₯ 및 섀계 μΈ‘λ©΄μ—μ„œ 더 λ‚˜μ€ μ ‘κ·Ό 방식이 ν•„μš”ν•˜λ‹€κ³  생각함
  • 즉, 더 λ‚˜μ€ 신경망을 ꡬ좕할 수 μžˆλ„λ‘ λ„μšΈ 수 μžˆλŠ” 방법이 ν•„μš”ν–ˆμŒ
  • 신경망 ꡬ좕 은 λ‹€μ–‘ν•œ μ‚¬μš© 사둀에 적용될 수 있기 λ•Œλ¬Έμž„
  • 신경망을 잘 λ‹€λ£¨λŠ” 데이터 κ³Όν•™μž, μ—”μ§€λ‹ˆμ–΄λ§ λ“± λ§Žμ€ μ „λ¬Έκ°€κ°€ μ‘΄μž¬ν•¨ BUT, 신경망을 νŠœλ‹ν•˜κΈ° μœ„ν•œ λ§Žμ€ λ…Έλ ₯, μ‹œκ°„μ΄ ν•„μš”ν•¨
    πŸ˜€ λ”°λΌμ„œ, 인곡 신경망 섀계λ₯Ό μžλ™ν™” ν•˜λŠ”NAS 기술이 개발됨

🟑 NASλž€? (1)

  • NASλŠ” AutoML의 ν•˜μœ„ ν•„λ“œμž„
    : ν•˜μ΄νΌνŒŒλΌλ―Έν„° νŠœλ‹μ„ μ‚΄νŽ΄λ³΄λ©΄, ν•˜μ΄νΌνŒŒλΌλ―Έν„° μ΅œμ ν™”λŠ” NAS의 ν•˜μœ„μ§‘ν•©μž„
    : NAS의 μ£Όμš” μ•„μ΄λ””μ–΄λŠ” (1) 졜적의 μ•„ν‚€ν…μ²˜λ₯Ό μ°Ύκ³ , (2) μ΅œμƒμ˜ ν•˜μ΄νΌνŒŒλΌλ―Έν„°λ₯Ό μ°ΎλŠ” 것
  • 2017λ…„, ꡬ글 브레인 νŒ€ λ…Όλ¬Έλ°œν‘œ) NASλ₯Ό μ‹€μ œλ‘œ μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ κ°œλ°œν•œ 두 데이터 μ„ΈνŠΈλ₯Ό μ‚¬μš©ν•¨
    : (1) μ†μœΌλ‘œ μ½”λ”©ν•œ μ•„ν‚€ν…μ²˜λ₯Ό λŠ₯κ°€ν•˜λŠ” λ„€νŠΈμ›Œν¬ μ•„ν‚€ν…μ²˜ 개발
    ➑ μœ μ‚¬ν•œ μ•„ν‚€ν…μ²˜λ₯Ό μ‚¬μš©ν•œ 이전보닀 0.5λ°° 더 빠름
    : (2) 이미지 λΆ„λ₯˜ 벀치마크
    ➑ μ•„ν‚€ν…μ²˜ 쀑 일뢀가 μ†μœΌλ‘œ λ””μžμΈν•œ 것보닀 훨씬 더 λ‚˜μ€ μ„±λŠ₯을 λ³΄μž„ (λ©”νŠΈλ¦­=정확도)

🟑 NASλž€? (2)

  • ν•™μŠ΅ 개발 νλ¦„μ—μ„œ NAS의 역할은?
    : 전체흐름 > 데이터 생성-데이터 λ ˆμ΄λΈ” 지정-λͺ¨λΈ ꡬ좕 및 ν›ˆλ ¨πŸ’­ μ‹€μ œ ν›ˆλ ¨ 뢀뢄에 NASκ°€ μœ„μΉ˜ν•¨

🟑 NAS building blocks
(1) 검색 곡간
: μ‹€μ œλ‘œ μ‚¬μš© μ‚¬λ‘€λ‘œ, μ„€κ³„λ˜κ³  μ΅œμ ν™”λ  신경망 μœ ν˜•μ„ μ •μ˜ν•¨
(2) 검색 μ „λž΅/λͺ¨λΈ 생성기
: μ œμ•ˆλœ λ„€νŠΈμ›Œν¬ μ•„ν‚€ν…μ²˜μ˜ 수λ₯Ό μƒ˜ν”Œλ§ ν•˜λŠ” 것
: 정확도, λŒ€κΈ°μ‹œκ°„, λ©”λͺ¨λ¦¬, λΉ„μš© λ©”νŠΈλ¦­λ„ 선택할 수 있음
: μ΄λŸ¬ν•œ μ•„ν‚€ν…μ²˜ ν›„λ³΄μ˜ μ„±λŠ₯을 μ΅œμ ν™” ν•˜λŠ” 것
(3) 평가 검증
: 데이터에 λŒ€ν•΄ NAS λͺ¨λΈμ„ 평가
: 이λ₯Ό μ„€κ³„ν•˜λŠ”λ° μ‚¬μš©ν•  수 μžˆλŠ” κ²½λŸ‰ 파이썬 라이브러리 PyGloveκ°€ 있음

🟑 NAS working

  • 2017λ…„ λ…Όλ¬Έ, (μ™Όμͺ½) μ»¨νŠΈλ‘€λŸ¬κ°€ μžˆλŠ” μˆœν™˜ 신경망을 μ‚¬μš©, (였λ₯Έμͺ½) μžμ‹ λ„€νŠΈμ›Œν¬
  • 컨트둀러
    : μ‚¬μš©μž, 지정검색 or 미리 μ •μ˜λœ 검색 곡간 탐색
    : 검색 곡간을 기반으둜 μ•„ν‚€ν…μ²˜λ₯Ό μ •μ˜ν•¨ --> μ •μ˜λœ μ•„ν‚€ν…μ²˜ = μžμ‹ λ„€νŠΈμ›Œν¬
  • μžμ‹ λ„€νŠΈμ›Œν¬
    : 정확성을 μœ„ν•΄ ν›ˆλ ¨λ¨, κ°•ν™”ν•™μŠ΅μ„ μ‚¬μš©ν•˜μ—¬ 정확도 κ²°κ³Όλ₯Ό μ»¨νŠΈλ‘€λŸ¬μ— λ‹€μ‹œ μ œκ³΅ν•¨
  • λ”°λΌμ„œ, μžμ‹ λ„€νŠΈμ›Œν¬λ₯Ό μ„€κ³„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•œ λ§€κ°œλ³€μˆ˜λ₯Ό μ—…λ°μ΄νŠΈ ν•˜κ³ , ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°˜λ³΅ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•¨ --> 점점 더 μ’‹μ•„μ§ˆλ•ŒκΉŒμ§€ κ²€μƒ‰κ³΅κ°„μ—μ„œ λ„€νŠΈμ›Œν¬λ₯Ό ꡬ좕함
  • κ°•ν™” μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•œ 보상 λ©”νŠΈλ¦­μ„ 슀슀둜 선택함 (λŒ€κΈ°μ‹œκ°„, λ©”λͺ¨λ¦¬ λ“±μ˜ μ‘°ν•©)
    : λ‹€λ₯Έ λͺ¨λ“  μ‚°μ—…μ—μ„œ λ‹€λ₯Έ μ΄ˆμ μ„ 가지고 있기 λ•Œλ¬Έμ— 정말 μ€‘μš”ν•œ λΆ€λΆ„
    β—Ύ NASλŠ” 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 신경망을 κ΅¬μΆ•ν•˜λŠ” 것이 μ•„λ‹Œ, 신경망을 ꡬ좕할 수 μžˆλŠ” 또 λ‹€λ₯Έ 신경망이 있기 λ•Œλ¬Έμ— κ°•λ ₯함
  • 검색 κ³΅κ°„μ—μ„œλŠ” conv layer, deconv layer, multi-head attention layerλ“±μ˜ κΈ°λŠ₯이 있음 --> μ΄λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ 선택할 수 μžˆλŠ” 검색곡간과 κ°™μŒ
    β—Ύ NASλŠ” μžλ™ν™”λ‘œ 신경망을 탐색할 수 μžˆμœΌλ―€λ‘œ, λ§Žμ€ 전문가듀보닀 ν›Œλ₯­ν•  μˆ˜λ„ 있음?
  • NAS μˆ˜ν–‰μž‘μ—…μ€ μ»¨ν…Œμ΄λ„ˆλ₯Ό κ°€λ™ν•˜κ³ , ν•˜μœ„ λ„€νŠΈμ›Œν¬λ₯Ό λ°°μΉ˜ν•˜κ³  ν•™μŠ΅μ‹œν‚€κ²Œ ν•˜λŠ” κ²ƒμž„
    : μ™„λ£Œν›„ λ‹€λ₯Έ μžμ‹ λ„€νŠΈμ›Œν¬μ— μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜, μ œκ±°ν•  수 있음
    : κ΅μœ‘μ‹œκ°„μ΄ 였래걸리고, 반볡으둜 인해 λ§Žμ€ λ¦¬μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ, μ΅œμ’…λͺ¨λΈμ€ 쑰금 더 κ°œμ„ λ˜μ–΄μ•Ό 함 --> hand code 보닀 더 κ°œμ„ λ˜μ–΄μ•Ό 함
    β—Ύ NASλŠ” μ‚¬λžŒμ΄ 직접 λ§Œλ“  λͺ¨λΈλ³΄λ‹€ μ„±λŠ₯이 μš°μˆ˜ν•˜κ±°λ‚˜ 적어도 동등함. λ˜ν•œ, 전문지식을 κ°–μΆ˜ ML μ—”μ§€λ‹ˆμ–΄λ‹ˆμ–΄λ“€μ΄ 섀계할 ν•„μš”μ—†μŒ
    β—Ύ NASλŠ” 뢀동 μ†Œμˆ˜μ  μ—°μ‚°μ˜ 수λ₯Ό μ€„μž„μœΌλ‘œμ¨, 더 μ—λ„ˆμ§€ 효율적이고 정확함
    : 기쑴의 μ»¨λ³Όλ£¨μ…˜ λ„€νŠΈμ›Œν¬μ™€λŠ” λ‹€λ₯Έ μˆœμ„œλ‘œ κ΅¬μ‘°ν™”λœ λ‹€μ–‘ν•œ λ ˆμ΄μ–΄λ₯Ό λ³Ό 수 있고, λ§Žμ€ μŠ€ν‚΅ 연결이 있기 λ•Œλ¬Έμž„
    : μ΄λŠ” 선택할 수 μžˆλŠ” 폭이 λ§Žλ‹€λŠ” 것을 μ˜λ―Έν•˜λŠ”λ°, 이λ₯Ό NASκ°€ λŒ€μ‹ ν•΄μ€Œ
    ❓ "λͺ¨λ“  검색 곡간을 μ œκ±°ν•˜κ³ , λ‹€λ₯Έ 신경망이 NAS μ•Œκ³ λ¦¬μ¦˜μ΄ 선택할 수 μžˆλŠ” 검색곡간을 섀계할 수 μžˆμ„κΉŒ?"

🟑 NAS ν™œμš©

  • μžμœ¨μ£Όν–‰μžλ™μ°¨
    : μΆ©λŒμ„ ν”Όν•˜κ³  μ‹ΆμŒ --> μ •ν™•μ„±/λŒ€κΈ°μ‹œκ°„μ€ 맀우 μ€‘μš” --> μžλ™μ°¨μΈμ§€, μ‚¬λžŒμΈμ§€, ν”Όν• λŒ€μƒ λ“±
    : waymoλ₯Ό 톡해 λ‹€λ₯Έ λ ˆμ΄μ–΄ μœ ν˜•μ—μ„œ 'κ±΄λ„ˆλ›°κΈ° μ—°κ²°'κΈ°λŠ₯을 톡해 (NAS λ„€νŠΈμ›Œν¬) λŒ€κΈ°μ‹œκ°„μ„ 20~30%, 였λ₯˜μœ¨ 8~10% κ°μ†Œ --> μžλ™μ°¨ μ‚°μ—…μ˜ 쒋은 사둀

🎯 정리

  • NASλ₯Ό κ³΅λΆ€ν•˜λ©΄μ„œ λŒ€κΈ°μ—…μ—μ„œλŠ” μ–΄λ–€ 연ꡬλ₯Ό ν•˜κ³ μžˆλŠ”μ§€ κΆκΈˆν•΄μ„œ 유튜브λ₯Ό μ°Ύμ•„λ³΄λ˜ 쀑 [ꡬ글 브레인, ꡬ글 ν΄λΌμš°λ“œ]의 μ˜μƒμ„ 보게 λ˜μ—ˆλ‹€. NASλŠ” AutoML의 ν•˜μœ„λΆ„μ•Όλ‘œ, ν•˜μ΄νΌνŒŒλΌλ―Έν„° μ΅œμ ν™”μ˜ μ€‘μš”ν•œ 역할을 ν• μˆ˜ μžˆλŠ” 연ꡬ뢄야라고 μƒκ°λœλ‹€. NASλŠ” μ‚¬λžŒμ΄ μ½”λ”©ν•œ 것과 λ™λ“±ν•˜κ±°λ‚˜ 더 λ›°μ–΄λ‚  수 있기 λ•Œλ¬Έμ— λ§Žμ€ μ—°κ΅¬μžλ“€μ΄ NASλ₯Ό ν™œμš©ν•˜μ—¬ 이미지뢄석, ν…μŠ€νŠΈ 뢄석 그리고 μ‹€μƒν™œ μ μš©ν•˜λŠ” μ—°κ΅¬λ“€κΉŒμ§€ 이어지고 μžˆλŠ” 것 κ°™λ‹€. 제일 μΈμƒκΉŠμ—ˆλ˜ 뢀뢄은 Search space 즉, λͺ¨λ“  검색 곡간을 μ œκ±°ν•˜λŠ” 방법이 μ—†μ„κΉŒ?λΌλŠ” μ§ˆλ¬Έμ„ λ˜μ§„ λ°œν‘œμžμ˜ 말이 기얡에 λ‚¨λŠ”λ‹€. 검색 곡간을 μ œκ±°ν•œλ‹€λ©΄, 더 λΉ λ₯Έ 연산이 κ°€λŠ₯ν•  수 있기 λ•Œλ¬Έμ— λ˜μ§„ 말인 것 κ°™λ‹€. μ΅œκ·Όμ—λŠ” NASλ₯Ό 더 효율적으둜, λΉ„μš©μ„ μ€„μ΄λŠ” 연ꡬ에 μ΄ˆμ μ„ λ‘”λ‹€κ³  ν•˜λŠ”λ°, 이 λ°œν‘œμžλ„ 같은 μ΄ˆμ μ„ 두고 λ§ν•œ 것 κ°™λ‹€. μ•žμœΌλ‘œλ„, NAS의 연ꡬ가 ν™œλ°œν•  것 κ°™κ³ , λ‹€μ–‘ν•œ 뢄야에 μ μš©ν•˜κΈ° μœ„ν•΄ '초점' 연ꡬ가 μ€‘μ μ μœΌλ‘œ μ΄λ£¨μ–΄μ§ˆ 것 κ°™λ‹€.
profile
best of best

0개의 λŒ“κΈ€