[AI 이야기]


음식별 수백 장 이미지로 데이터 학습…조명 달라지거나 뒤집힌 이미지도 인식 가능
칼로리·영양 정보 알려주는 식단 카메라… 딥러닝 기술로 사진 속 1000여 종 음식 구분 [AI 이야기]
[한경비즈니스 칼럼=이수경 카카오엔터프라이즈 기술기획셀, 홍은빈 카카오엔터프라이즈 멀티미디어처리파트, 이주영 카카오엔터프라이즈 멀티미디어처리파트, 카카오엔터프라이즈 기술블로그 Tech&(테크앤)]요즘 다이어트 애플리케이션(앱)은 사진 속 음식을 자동으로 인식해 섭취 칼로리와 영양학적 정보를 좀 더 쉽게 기록할 수 있게 한다. 카카오 VX가 만든 ‘스마트홈트’ 또한 사진 속 음식의 이름과 칼로리를 자동으로 입력해 주는 식단 카메라 기능을 제공하고 있다. 이 식사 기록을 토대로 스마트홈트의 인공지능(AI) 코치가 적절한 운동과 식단을 제안해 준다. 식단 카메라에 적용된 카카오엔터프라이즈 AI 랩(Lab))의 음식 인식 기술을 만나보자.


음식 분류기와 음식 검출기

1000여 종을 구분할 수 있는 AI 랩의 음식 인식 모델은 입력 이미지에서 음식 영역을 추출하는 ‘검출기’와 검출된 영역 내 존재하는 음식의 이름을 인식하는 ‘분류기’로 나눠볼 수 있다. ‘음식 분류기’의 과정은 다음과 같다.
칼로리·영양 정보 알려주는 식단 카메라… 딥러닝 기술로 사진 속 1000여 종 음식 구분 [AI 이야기]
1) 데이터 세트 수집


AI 랩은 스마트홈트 사용자가 많이 입력할 법한 음식명을 목록화하는 작업을 진행했다. 다음(Daum) 검색에 입력되는 음식 관련 요청 쿼리 수가 높은 순서대로 정렬한 목록에서 ‘안주’나 ‘소풍도시락’처럼 음식 이름이 아닌 대상은 제외했다. 반면 낫또·김·마늘 등 스마트홈트 앱 사용자가 자주 입력하는 음식은 목록에 새롭게 추가했다.


그다음 준비한 음식별 후보 이미지 수백 장을 몇 가지 기준을 가지고 정제하는 작업을 진행했다. 대표적인 기준은 다음과 같다. 동일한 음식을 지칭하는 레이블(또는 범주)은 하나로 통일했다. 음식을 플레이팅한 방법이 제각각이더라도 모두 같은 레이블을 붙였다. 서로 다른 음식이지만 외관이 비슷하면 대표 범주만 남기고 나머지는 제거했다.


2) 모델 채택 및 훈련


AI 랩은 개발 당시 최신 분류 모델 중 자체 실험에서 가장 높은 성능을 달성한 인셉션(Inception)V4를 음식 분류를 위한 기반 모델로 활용하고 추가적인 성능 향상 기법을 탐색했다.


❶ 최적화 알고리즘
오차를 최소화하는 방향으로 가중치 값을 수정하는 최적화 알고리즘의 작동 방식은 크게 2가지로 나눌 수 있다.


모든 가중치에 동일한 학습률을 적용하는 SGD(Stochastic Gradient Descent) 계열은 일반화에 큰 도움이 되지만 학습 속도가 느리다. 가중치마다 서로 다른 학습률을 반영하는 ADAM(ADaptive Moment estimation) 계열은 학습 속도는 빠르지만 가중치 값보다 학습률이 지나치게 크거나 작은 상황에서는 일반화가 잘되지 않을 수도 있다.


❷ 레이블 스무딩


레이블이 잘못 부여된 데이터는 모델 학습에 악영향을 끼친다. 하지만 라벨링 데이터를 검수하는 데는 만만치 않은 시간과 비용이 든다. 이 문제를 해결하기 위해 AI 랩은 정답 범주의 인덱스만 1로 표현하는 대신 일정한 값을 더하거나 빼는 방식으로 여러 범주의 인덱스에 값을 표시하는 레이블 스무딩(label smoothing) 기법을 적용했다.


음식 인식과 같은 다범주 모델은 N개의 범주와 완전히 연결된 FC 층(fully connected layer)을 통과시켜 점수(확률)가 가장 높은 범주를 고른다. 음식 이미지를 ‘짜장면·짬뽕·라면·라볶이’로 분류할 때 ‘0.1, 0.8, 0.03, 0.02’나 ‘0.2, 0.5, 0.15, 0.15’ 모두 짬뽕인 사실에는 변함이 없다. 레이블 스무딩 또한 톱-1 정확도를 0.5%포인트 올리는 데 영향을 미쳤다. 추가로 이 레이블 스무딩은 잘못된 손실의 영향을 줄여 모델 정규화는 물론 일반화와 보정 모두에 도움이 되는 것으로 알려져 있다.


❸ 데이터 어그멘테이션

학습 데이터가 많을수록 딥러닝 모델의 성능이 높아진다. 목표로 하는 분류 성능을 달성하기에는 충분한 양의 데이터 확보에 어려움을 느낀 AI 랩은 어그멘테이션(augmentation)을 통한 학습 데이터 양을 대폭 늘리는 데 집중했다. 어그멘테이션은 이미지를 좌우로 뒤집거나 자르는 등 데이터에 인위적인 변화를 가하는 방법론을 뜻한다.


일반적인 머신러닝 모델은 학습 데이터가 범주별로 비슷한 비율로 구성돼 있다고 가정하고 학습을 진행한다. 하지만 실제 음식 데이터 세트의 분포는 그렇지 않았다. 이처럼 데이터가 불균형한 상황에서는 과적합(overfitting)이 발생하기 쉽다. 소수 범주에 속한 데이터가 입력됐을 때 다수 범주에 속한 데이터보다 분류 정확도가 낮을 가능성이 높기 때문이다. 이에 AI 랩은 데이터 수를 절대적으로 늘리기보다 범주별 데이터 수를 균일하게 만드는 데 집중했다.


사용자는 다양한 촬영 각도로 사진을 찍을 것이다. 음식의 일부 영역만 촬영할 수도 있다. 이런 데이터 특징에 착안해 AI 랩은 이미지 일부를 무작위로 자르고 이미지를 임의의 방향으로 돌리고 이미지를 위아래로 뒤집었다. 음식 이미지에서는 색을 임의로 바꾸지 않아야 한다. 빨간색 바나나나 검은색 햄버거는 제대로 인식하지 못할 수도 있기 때문이다. 반면 실제 음식 사진은 다양한 조도에서 촬영된다는 점은 충분히 추론해 볼 만한 부분이다. 이에 AI 랩은 이미지의 명도만 무작위로 조절하는 기법을 적용했다.


❹ 학습률

학습 한 번에 가중치를 얼마나 갱신할지 정하는 매개 변수인 학습률은 딥러닝 모델 훈련에서 중요하다. 학습률이 지나치게 낮으면 최종 성능에 이르는 데 걸리는 학습 시간이 굉장히 오래 걸릴 뿐만 아니라 오차가 최솟값이 아닌 극솟값에 수렴하는 문제가 발생한다. 반면 학습률이 지나치게 높으면 입력층으로 갈수록 전파되는 오차가 오히려 폭증하는 현상으로 인해 최솟값을 지나칠 수 있다. 최신 기법인 코사인(cosine) 그래프를 따라 학습률을 줄이는 방식으로는 효과를 보지 못한 AI 랩은 일정 에포크(epoch)마다 손실 값이 줄지 않으면 학습률을 2분의 1씩 줄여 나갔다.


❺ TTA


TTA(Test-Time-Augmentation : 테스트 단계에서의 어그멘테이션)는 각기 서로 다른 어그멘테이션 기법을 적용한 테스트(추론) 데이터를 최종 모델(훈련 데이터와 검증 데이터로 학습을 마친 모델)에 입력하는 방식으로 성능을 끌어올린다. 마치 서로 다른 어그멘테이션 기법을 적용한 학습 모델을 앙상블한 것과 비슷한 수준의 성능 향상을 기대해 볼 수 있다. 테스트 데이터를 모델에 여러 차례 입력하기 때문에 정답을 추론하는 시간이 좀 더 길어질 수 있다. 하지만 최종 모델의 매개 변수를 변경하지 않고도 추론 성능을 높일 수 있어 추가 학습에 드는 시간과 비용을 획기적으로 줄이는 데 도움이 된다.


3) 이진 분류기 추가


음식 분류기는 100% 완벽하게 동작하지 않다. ‘치와와 얼굴’, ‘갈색 털 푸들’, ‘웰시코기 엉덩이’처럼 음식이 아닌 이미지를 각각 ‘블루베리 머핀’, ‘프라이드치킨’, ‘식빵’으로 잘못 분류할 수도 있기 때문이다. AI 랩은 음식인 이미지와 음식이 아닌 이미지를 먼저 분류하고(이진 분류기), 음식인 이미지만을 대상으로 음식 분류 결과를 내놓는다면(음식 분류기) 음식 인식 카메라를 향한 사용자 만족도를 한층 더 끌어올릴 수 있을 것이라고 판단했다.


하지만 같은 음식 데이터 세트를 학습하는 두 분류기가 배우는 음식 표현이 서로 비슷할 가능성이 높다. 이에 AI 랩은 분류 학습을 완료한 앞쪽 인셉션 블록의 가중치를 고정하고 뒤쪽 인셉션 블록의 가중치는 이진 분류 데이터 세트(음식이다. 음식이 아니다)로 미세 조정했다. 그 결과 AI 랩은 우수한 성능을 내는 이진 분류기를 만들 수 있었다. ‘음식 검출기’도 데이터 세트 수집, 모델 채택과 훈련을 거친다.


앞으로 AI 랩은 ‘더 많은’ 음식을 ‘더 정확하게’ 인식하는 기술을 만들어 갈 계획이다. 핵심은 다양한 학습 데이터 세트를 대량 확보하는 데 있다. AI 랩은 밝은 조명이 있는 스튜디오 촬영 이미지뿐만 아니라 다양한 화각과 밝기에서 찍힌 사용자 제공 이미지도 학습 데이터로 활용할 계획이다. 스마트홈트 앱에서 인식에 실패한 음식 사진의 태그를 사용자가 직접 수정하는 기능이 있어 정답 레이블이나 수요가 높은 새로운 범주의 음식 정보를 획득하기가 수월할 것으로 보인다.


[본 기사는 한경비즈니스 제 1301호(2020.10.31 ~ 2020.11.06) 기사입니다.]