안녕하세요. 여러분? 그동안 대학원 진학을 준비함에 바빠 블로그 글을 쓰지 못 했네요.

 

이번에 제가 운좋게도 LG 전자 산학 장학생에 2차 면접까지 합격하게 되었습니다.합격까지 과정을 진행해오면서 관련 정보가 인터넷에 많이 부족하다고 느꼈고, 제가 알음알음 알아낸 정보들로만 전형을 준비해야 하는게 굉장히 어려웠습니다. 그래서 제가 겪었던 준비부터 진행 과정, 그리고 그 간에 알아낸 TIP들에 대해 공유해보고자 이번 글을 써보려 합니다.

 

산학장학생을 준비하는 모든 학부 졸업생, 석사, 박사과정생 분들에게 도움이 되었으면 좋겠습니다!

 

 

1. 서류

자기소개, 세부 경험들과 기타 등등,,, 여러 내용 제출 요구하는 다른 타 회사의 채용 전형들과 다르게, LG전자 산학장학생은 '연구 분야 설명'과 'My Stroy' 만을 요구합니다. 정말 딱 핵심만 요구하는 느낌? 오히려 다른 전형들보다 짧기 때문에 더 해당 내용에서 핵심만 담아내는 것이 필요합니다. 아무래도 일반 신입 공채가 아닌 산학장학생인 만큼 자신의 경험과 LG전자가 요구하는 직무나 방향성과 연계해서 담아내는 것이 포인트일 것 같습니다. '내가 연구하는 분야가 이것인데, 앞으로 LG가 이런 방향성에서 이런 기술이 필요하게 될 것이다' <- 이러한 포인트가 '나'라는 사람에 대한 소개와 함께 딱 드러나도록 작성하는 것을 추천합니다. 

 

2. 인적성 + 코딩 테스트

인적성 검사는 비대면으로 진행되며, LG way fit test로 진행됩니다. 적성 검사의 경우 난이도가 쉽다고 말할 수는 없지만, 그래도 skct나 gsat에 비하면 쉬운 편에 속합니다. 저도 부담없이 1주일 정도 투자해서 적성 검사를 준비했던 것 같습니다. 제가 공부한 교재는 < https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000010846785   > 해당 교재인데, 풀어보면서 어렵다고 느끼는 유형이 있다면 유튜브에서 해당 유형을 빠르게 푸는 tip들을 많이 참고했습니다. '많이' 푸는 게 중요한게 아니라, '어떻게' 빠르게 푸는지 그 유형별 파악을 하는게 중요한 TIP일 것 같습니다. 적성은 난이도에 따라 차이가 있겠지만, 반타작 이상만 해도 합격 안정권인 것으로 보입니다.

 

인성 검사는 그냥 느낌껏 푸시되, 자신의 유형을 정확하게 파악해서 '일관성'있게 푸시는 것이 중요합니다. 제 친구가 기업 인사팀에 있었는데, 주로 문제되는 부분이 무조건 좋게 문항을 적어보려하다가 일관성있게 풀지 못해 거짓 응답으로 나오는 경우라고 알려주어 일관성있게 풀려 노력했었습니다.

 

저는 SW 관련 분야 지원이었기에 코딩 테스트(sw 프로그래밍 테스트)도 진행했습니다. 코딩 테스트는 보통 인적성 앞뒤 날짜로 하여 따로 많이 진행되며, 문항은 세 문항, 시간은 총 120분 입니다. 사용 가능 언어는 파이썬, C, C++, java입니다. 전공자라면 준비 안해도 풀 수 있는 기본 SW구현이 1문항, 그리고 알고리즘 관련 선행 지식이 필요한 문제해결이 2문항이었습니다. 문제해결 중 마지막 문항이 어려운 편이고, 나머지 2문제는 전공자라면 아마 거의 풀 수 있는 수준이었습니다. 삼성이나 삼성SDS 코테에 비하면 아무래도 쉬운 편이지만, 쉬운 만큼 2솔만해도 안정권인 삼성과 달리 3솔을 해야 확실한 합격 안정권인 것 같습니다. 저는 3솔로 통과했고, '코드트리'와 '문어박사 IT 편의점' 유튜브를 자주 참고했습니다. 최근 백준이 서비스 중단으로 알고 있는데, LG 전자는 프로그래머스에서 문제 환경을 제공하기 때문에 프로그래머스에서 문제 유형들을 정리해보시는 걸 추천합니다.

 

3. + 사전 과제제출

서류 전형 + 인적성까지 통과했다면 1차 면접 이전에 직무 역량 기술서를 제출하라는 사전 과제가 주어지게 됩니다. 쉽게 말해서, 앞서 서류 때 작성했던 연구분야를 PPT로 자세하게 옮겨 설명하는 것입니다. 해당 직무 역량 기술서는 제출에서 끝나는 것이 아니라, 실제 1차 면접 발표 자료로도 활용해야 하기 때문에 반드시 최선을 다해 작성해야합니다. 보통 여기서 어떤 부서에 본인이 실제로 면접 보게 될 지가 나오게 되는데, 해당 부서의 방향성과 현재 이루어지는 사업이나 기술 등을 잘 파악하셔서 본인의 연구와 잘 align 시킨다면 Bset 입니다. 저의 경우 제 연구 분야와 상당히 매칭되는 부분이 있어 그러한 부분을 잘 강조했던 것 같습니다. 하지만, 본인이 생각하는 연구분야와의 매칭과, 실제 직무 면접의 면접관들이 요구하는 기술분야나 직무가 다를 수도 있으니, 본인이 잘 파악해 FIT하게 갈지, 아니면 본인의 업무 능력이나 연구 능력을 강조하여 빠른 직무 적응도를 내세울 것인지 전략을 잘 세워가야 하겠습니다.

 

4. 1차 면접(직무 면접)

1차 면접은 비대면 화상 면접으로 대략 30분간 진행되었습니다. 보통 다대일 면접으로 진행되며, 저의 경우 인사팀 한분과, 부서 실무자 한분이 면접관으로 나오셨습니다. 면접은 간단한 자기 소개로 시작해서 직무역량 기술서 기반 PPT 발표를 진행하게 되는데, 해당 PPT를 기반으로 실무자 분이 연구 관련 질문, 실무 관련 질문을 질의하시고 제가 응답하는 방식으로 진행되었습니다. 저의 경우 주로 직무와 제 연구를 연결시켜 발표를 했더니 굉장히 실무자분께서 관심을 가지고 긍정적으로 반응해주시며 질의를 주셨고, 덕분에 어렵지 않게 잘 답변했던 것 같습니다. 저는 시간관계상 인사팀 분께 질문을 받지는 못했지만, 합격한 다른 분들의 면접의 경우 인사팀에서도 인성관련 질의가 나온다고 하니 본인의 PPT에서의 연구 관련 QA, 부서 관련 QA 뿐만이 아니라 인성 QA도 모두 준비해가셔야합니다. 

 

1차 면접에서 중요한 것은 얼마나 나의 연구를 잘 파악하고 있냐 뿐만이 아니라, 그게 어떻게 직무에서도 이어질 수 있을지 잘 연결시키는 것이 중요할 것 같습니다. 본인의 연구를 PPT에 빽빽하게 적어 세세하게 전달하는 것보다, 본인이 어떻게 문제를 파악하고, 해결해갔는지, 또 이슈가 있을때는 어떠한 과정을 통해서 해결했는지, 이러한 본인의 문제 해결 절차를 어떻게 직무에서도 활용할 수 있을지 등을 잘 보여주시는게 주요 포인트입니다.

 

 

5. 최종 면접(인성 면접)

2차의 경우 실제 부서 근무지에서 오프라인 면접으로 진행되며, 1차와 마찬가지로 다대일로 진행됩니다. 저의 경우 인사팀 없이 2명의 부서 현직자분들과 면접을 진행하였습니다. 2차 면접의 경우 부바부인 경우가 많다고 느낀게, 보통 인성 면접으로 소개되지만 저는 2차에서도 인성질문이 아닌 직무 관련성 + 저의 연구 경험 위주의 질문만 질의받았습니다. 때문에 1차와 비슷하게 직무, 연구 경험, 인성 모두 준비해가되, 2차의 경우에는 좀 더 부서를 자세히 파악해서 준비해가시는 걸 추천드립니다. 

 

 2차 면접에서 제가 강조드리고 싶은 TIP 첫째는, 정장을 입고가라는 것입니다. 복장은 자율이라고 소개하고 있지만, 거의 모든 합격자분들이 정장을 입고간 점을 볼때 가능하면 깔끔하게 정장을 입고 가시는 것을 추천드립니다. 가장 안전한 선택이니까요. 요즘 서울이나 경기도에서는 청년들 대상으로 무료 정장 지원 사업을 실시하고 있으니 꼭 이용하시길 바랍니다.

< https://job.seoul.go.kr/hmpg/spct/ewif/ewifInfo.do >

 둘째는, '자기 소개'와 '마지막 하고 싶은 말' 이 두가지는 꼭 준비하는 것입니다. 거의 모든 면접에서 나오니 반드시 잘 준비하시길 바라며, 마지막 하고 싶은 말의 경우 본인이 해당 면접에서 보여주고 싶은 것을 보여주지 못하셨을 때 언급하시면 좋을 것 같습니다. 만약 보여주고 싶으신 것을 다 보여주고 싶으셨다면, 실제 합격 후 현직과 관련된 질문들, 부서와 관련된 질문들을 물어보시며 본인이 얼마나 해당 직무에 관심이 많은지를 표현해 주시는 것도 좋은 방법일 것 같습니다. 

 

6. 건강검진

2차까지 잘 마무리 되셨다면, 최종합격 전에 건강검진을 하게 됩니다. 사실상 2차 합격하셨다면 최종 합격이라고 보셔도 무방합니다. 

 

7. 마무리

 각 전형 절차 간 2주동안의 기간이 있어 3월부터 7월까지 전형이 진행되었습니다. 회사 및 부서 사정에 따라서 전형은 안내와 다르게 진행될 수 있으니 결과 안내가 늦어진다고 부담갖지 마시길 바랍니다. LG전자의 경우 목, 금, 월에 주로 각 절차별 결과를 확인시켜 주는 편입니다. 4개월의 시간 동안 많은 기대와 부담을 품고 살아왔지만, 결과적으로 좋은 결과를 맞이 할 수 있어 감사할 따름입니다. 마지막으로 제가 주로 많이 참고했던 오픈 카톡방이 있었는데요, '2026 LG전자 취업준비방' 입니다. 들어가셔서 자유롭게 문의하시면 도움이 되실 것 같습니다. 추가로 저에게도 문의하실 분이 계시다면, 댓글이나 비밀 댓글로 남겨주시면 최선을 다해 답변드리도록 하겠습니다. 

LG전자, 혹은 다른 타 회사에서 산학장학생을 준비하시는 모든 분들에게, 이번 글을 참고하셔서 꼭 좋은 결과 있으시길 바랍니다.
감사합니다.

 초록

스마트폰 애플리케이션을 운영할 수 있는 새로운 LLM 기반 멀티모달 에이전트 프레임워크를 소개. -> 유사한 인터렉션을 모방하는 단순호된 액션 공간을 통해 앱을 조작할 수 있도록 함 -> 백엔드 접근 없이도 다양한 앱을 활용할 수 있는 범위를 확장 - 자율적인 탐색 또는 인간의 시연을 관찰하는 과정을 통해 새로운 앱을 탐색하고 사용할 수 있도록 학습 -> 생성된 지식 베이스는 복잡한 작업들을 수행하는 데 참조하는 역할 - 10개의 앱과 50개 이상의 작업을 수행하는 실험을 진행

 

■ Introduction

LLM의 주요 한계점은 텍스트 기반 정보에만 의존한다는 것. 하지만 GPT-4와 같은 비전기능 통합 모델이 등장하며 돌파구가 마련됨. - 본연구는 멀티모달 LLM의 비전 기능을 활용하여 기존 텍스트 기반 에이전트가 수행할 수 없었던 작업ㅇ르 수행할 수 있도록 멀티모달 에이전트를 구축하는데 초점을 맞춤. 

백엔드 접근과 함수 호출을 통해 운영되는 AI 비서(siri)와 다르며, guif를 직접 조작하며 앱과 상호작용을 함

-> 시스템 접근이 필요없는 장점. 다양한 앱에서 범용활용 가능 / 보안성과 개인정보 보호 측면에서 장점 / 업데이트에서도 유연한 적응 가능

-> 그러나 이러한 개발은 학습데이터가 필요. gui 및 논리차이로 인해 새로운 앱에서 일반화가 어려움

-> 인간과 같은 방식으로 조작하는 멀티모달 에이전트 프레임워크를 제안 - 두 단계로 나뉨

1. 탐색 단계에서는 사전 정의된 동작을 이용해 자율적으로 상호작용하며 학습. 이를 문서화하며, 조작방법을 습득

2. 인간 시연도 관찰하는 방식을 적용. 

10개, 50개 작업에서 실험 진행. 정량적 분석과 사용자 연구 모두에서 우수성 확인. 적응성, 사용자친화성, 효율적 학습 및 운영 면에서 강점을 보임. 강력한도구가 될 수 있음

- 기여

프레임워크 개발. 오픈 소스 공개

혁신적인 탐색 전략을 제시

장점 파악, 조작 가능성 입증

 

■ related work

LLM의 발전 - GPT 4v, LLama 다중 모달

에이전트 발전 - ReAct, 다중모달 에이전트

 

■ Method

- 환경 및 액션공간

실험 환경은 CLI로 구축되어 있으며, 이를 통해 에이전트가 스마트폰 앱과 상호작용. 

에이전트는 2개 입력을 받는데, 실시간 스크린 샷과 UI 상호작용 요소 정보를 포함한 xml 파일임 - 이러한 요소들을 원활히 인식하고 상호작용 할 수 있도록 각 요소에 고유 식별자를 부여. xml 파일의 ID 기반으로 하거나, 클래스 명 등 정보를 조합하여 생성 -> 이러한 식별자를 활용하여 스크린샷에 반투명 숫자를 오버레이함으로써, 에이전트가 특정 좌표를 직접 지정하지 않고도 정확하게 상호작용 할 수 있도록 함. - 정밀도 향상

액션공간은, 다섯가지 기본기능(탭, 길게 누르기, 스와이프, 텍슽, 백, 엑시트) 등으로 이루어짐. - 텍스트 기반이기에, 정확한 좌표를 뽑아내지 않도록 함

- 탐색 단계

1. 자율적 탐색

task 수행위해 ui 요소와 자율적으로 상호작용하며 기능을 이해. -> 특정 액션을 수행후, 스크린 샷 변화를 분석하여 ui 요소의 역할과 동작을 학습 -> 문서화하며, 관찰정보를 결합하여 기록을 개선

탐색 향샹 -> ui가 주요한 기능과 관련 없을 경우, 추가 탐색을 중단하여 back 함수를 호출하여 이전 페이지로 돌아감

무작위 탐색(bfs, dfs) 대산 목표 지향적 탐색 방식을 사용하며, 앱의 핵심 요소를 효과적으로 탐색

LLM이 보유한 ui 관련 사전 지식을 활용하여 탐색을 높임

할당 작업 종료시 종료

2. 인간 시연 관찰 탐색

인간 사용자의 사용을 관찰하며 탐색. 복잡한 작업에 유용. 조작시 사용된 ui 요소 및 액션만을 기록

자율적 탐색보다 더 효율적

3. 배포 단계

획득한 경험을 활용하여 복잡한 작업을 수행. 

1. ui 스크린샷 분석 2. 동적 문서 참조 3. 사용가능한 액션을 설명하는 프롬프트 생성 4. ui에 대한 관찰 결과 제공 5.작업에 대한 사고 과정 설명 6. 필요한 액션 수행 7. 현재까지 상호작용 및 수행한 액션 요약. 8. 기록된 정보를 다음 단계 프롬프트에 반영하여 메모리 기능 제공

끝나면, exit()를 사용하여 프로세스를 종료해 배포 종료

 

■ experiments

- 실험 환경

10개의 인기 애플리케이션을 포함하는 벤치마크를 구축. 탐색에서 최대 40번 상호작용을 수행하도록 제한하였고, 테스트 단계는 최대 10회로 제한. gpt-4를 사용.

- 베이스 모델 gpt 4(비교 기준 1. 문서 없이 원시 api 사용 / 2. 단순한 액션공간 / 3. 문서 생성방법 비교)

- 평가 지표 SR(성공률), 보상(Reward), 평균단계수  

결과 - 단순한 액션공간을 적용하면 성능이 크게 항상. xy좌표를 예측하는데 어렵기 때문. 기본보다 자율 및 인간 시연 문서 기반이 더 우수함. 사람 작성문서와 유사. 

케이스 스터디

어도비라이트룸의 경우, 적절한 도구 선택과 이미지 매개변수 조정이 필요함. 시각적 문제 있는 이미지를 줒ㄴ비하고 편집을 수행. 휴먼 평가를 통해 결과를 평가하고 순위를 매김. 에이전트가 사용한 평균개수 도구도 보고하여 복잡성을 비교

-> 문서 기반 에이전트 모델이 일관되거 더 나음. 인간 시연과 수작업 작성된 문서 수준이 유사함. 탐색이 효과적

-> 문서 활용 에이전트는 다양한 도구를 사용함

 

■ 결론

다중모달 에이전트 프레임워크를 제안

시스템 백엔드 접근없이도 작동하며, 보안성, 적응성, 유연성에서 장점

탐색 기반 학습전략 도입을 통해 빠르게 적응하고 다양한 작업 수행이 가능하도록함

 

■ 한계

액션공간을 제한-> 복잡한 시나리오에서 적용 어려울 수 있음

확장 가능성이 있음

 

 

■ Abstract

자율 에이전트의 컴퓨터 재현은 현실적이고 재현가능한 벤치마크에 의해 좌우될 것. 이를 위해 ANDROIDWORLD라는 20개 앱과 116개 프로그래밍 가능한 작업에 대한 보상신호를 제공하는 완전한 기능을 갖춘 안드로이드 환경 벤치마크를 제시.

기존 대화형 환경은 정적인 테스트 세트를 제공하는 반면, 안드로이드월드는 자연어를 통해 무제한적으로 매개변수화된 작업을 동적으로 생성하므로 훨씬 많은 현실적 작업모음을 테스트 할 수 있음. 재현성을 보장하기 위해, 각 작업은 초기화, 성공확인, 종료 로직이 포함되어 있어 시스템 상태 수정및 검사가 가능.

이를 테스트 하기 위해 기본 에이전트와 실험을 진행하고, 벤치마크에 대한 초기 결과를 제공. 가장 뛰어난 에이전트 모델은 30.6%를 완료하였으며, 발전 가능성을 보여줌. 기존 웹에이전트는 모바일 환경에서 효과가 떨어져, 크로스 에이전트 플랫폼 개발을 위한 추가 연구가 필요함을 시사.

robustness 분석을 수행하여 작업의 변형이 에이전트 성능에 상당한 영향을 미침을 보여주며, 실제 성능지표가 도전과제를 반영하지 못함을 의미함.

 

■ Introduction

기존 평가 방식은 인간 시연 데이터와 단계별 동작을 비교하는 방식을 사용하고 있음. 그러나 실제 환경에서 작업 수행 시 에이전트는 여러 가지 경로를 통해 작업을 해결할 수 있으며, 환경이 비결정론적으로 동작할 수 있고, 에이전트는 실시간으로 수정할수도 있음. 따라서 실제 환경에서 작업 결과에 따라 보상을 제공하는 온라인 평가 방식이 최적의 평가 기준이 될 수 밖에 없음. 특히, 모바일 플랫폼은 종합적인 평가 방법 존재하지 않음. -> 해결책 : 안드로이드 월드

-안드로이드 월드란?

현실적 모바일 환경에서 에이전트가 수행한 작업에 대해 보상신호를 제공할 수 있는 신뢰할 수 있는 시스템. 보상신호는 특정 작업이 올바르게 수행되었는지 정량적 평가하는 지표. -> 하지만, 웹과 앱은 명시적인 보상신호를 제공하지 않음

-> 인간 심사위원이나 LLM기반 자동평가를 활용하여 작업결과에 대한 보상을 부여하려 했으나, 확장성 부족과 신뢰성 문제가 발생. 대신, 워크플로우 자동 평가 환경이 개발되었으나 이 또한 데스크탑 환경 한정임. -> 또한 기존 테스트 환경은 제한적이기에 정적 테스트 사양만을 지원하며, 매개변수가 변경되면 보상신호가 정상적으로 작동하지 않을 가능성이 큼.

- 안드로이드 월드 특징

이러한 평가 한계를 극복하기 위해 개발된 포괄적인 벤치마크 - 20개 앱과 116개 프로그래밍 가능한 작업을 수행하고 보상신호를 제공. / 기존과 달리, 무작위로 생성된 매개변수를 활용하여 작업환경을 동적으로 인스턴스화하므로, 에이전트는 수백만개의 고유한 작업 목표와 조건을 해결해야함. MiniwoB 벤치가 웹사이트 기반 테스트 환경을 제공한다면, 안드로이드월드는 실제 안드로이드 앱을 활용 -> 문제는 보상 신호를 실제 앱 사용에서도 지속적으로 유효하게 유지해야하는데, 이를 위해 안드로이드 os의 강력하고 일관된 상태 관리 기능을 활용하여, 앱이 데이터를 저장하고 업데이트 하는 방식과 동일한 메커니즘으로 이를 해결 / 경량화, 통신 원활 또한 장점

- 실험및 성능평가

M3A라는 다중모달 에이전트를 개발하여 성능을 평가. 멀티모달, 텍스트 입력 두가지 모드로 테스트되었음. (전반적ㅇ로 멀티모달 모드가 성능을 향상시키진 않음) M3A는 30.6% 성공률을 보임. 이는 기존 웹에이전트보다 높은 성능. 하지만 인간 (80 %)보다 뛰어나지 않으므로, 향상을 위한 필요가 있음을 시사. / 다양한 환경에서 작업목표와 매개변수의 변화가 성능에 큰 영향을 미침을 확인함. -> 동적 벤치의 필요성 강조됨

- 컨트리뷰션

1. 새롭고 현실적인 모바일 UI 에이전트 평가 환경을 구축

2. 최첨단 멀티모달 에이전트를 개발, 이를 활용한 벤치 성능평가 수행

3. 모델/ 환경의 확률적 요소를 고려한 평가가 필요함을 입증

 

Related work

- 상호작용 평가 환경

효과적인 평가를 위해서는 모방하는 벤치마크 뿐만이 아니라 완료시 보상 신호를 제공하는 상호작용 환경이 필요 / 많은 기존 벤치마크는 웹브라우징을 대상으로 하며, os 제어 에이전트 벤치마크도 있지만, 모바일 환경을 다루는 벤치마크는 상대적으로 부족하다. -> 모바일 os 대상과 비슷하면서도, osworld와 같은 접근방식을 확장하여 시작 상태를 동적으로 구성하고 작업 매개변수를 다양하게 설정할 수 있도록 설계함. / 일부 연구에서는 자동평가가 어려울 시 사람평가를 활용하기도 함. AndroidEnv는 유사한 기능을 제공하나, 보상을 위해서는 소스코드를 수정하고 작업별 로깅을 구현해야하므로, 게임같이 명확한 성공 기준이 있어야 함. 그러나 안드로이드 월드는 비침습적 보상 메커니즘을 채택하여, 수정 없이 다양한 앱에서 동일한 검증 모듈을 활용하도록 설계됨.

- UI 자동화를 위한 정적 데이터 셋

기존 데이터셋들은 성능과 상관이 있는 대리(metric) 평가 기준을 제공. 모바일에는 접근성 트리를 이용한 데이터 셋들이 있으며, 웹환경에서는 DOM을 활용하여 웹사이트를 표현. - 모바일은 스크롤링 같은 복잡한 동작을 포함하나, 데스크톱은 dom을 통해 직접 엑세스가 가능해 덜 유용. api 툴러닝 데이터셋도 존재

- 상호작용 에이전트

기존 UI에이전트들은 강화학습을 사용하여 행동 복제를 통해 동작을 시뮬레이션. -> 요즘은 파운데이션 모델을 활용하도록 추세가 바뀜. 라마등을 활용한 연구들, -> 또한 일부 연구에서는 시스템의 상태를 반영하는 에이전트를 연구. 리엑트, 리플렉션 등

 

■ Android World

- 안드로이드 개요

안드로이드는 유연하고, 배포가 용이하며, 구성가능하기에 연구에 적합함. 하지만 모바일은 더 많은 액션공간이 필요하기도 함. 안드로이드는 액션공간을 완전 개방하는데, api도 제공하여 활용하도록 함

- 관찰 및 액션 공간

안드로이드 월드는 에이전트가 안드로이드를 관찰하고 액션을 실행할 수 있는 인터페이스를 제공. 관찰 공간은 스크린샷과 접근성 UI 트리 표현으로 구성되며, 액션공간은 제스처, 타이핑, 네비게이션 홈 등의 액션을 포함 + 제한적인 API

- 재현가능하고 매개변수화된 태스크

ANDROIDWORLD는 20개의 다양한 애플리케이션에서 116개의 태스크로 구성된 태스크 모음을 제공. 이 태스크들은 메모 작성, 일정 예약, 메시지 전송, 시스템 유틸리티 활용 등과 같은 실생활에서 수행하는 활동을 시뮬레이션할 수 있음

각 task의 난이도, 수행시간은 다양. - 높은 수준의 현실과의 재현성을 유지하기 위해 정밀하게 앱과 운영체제 상태를 제어

- 자동 태스크 매개변수화(Automatic Task Parameterization)**는 ANDROIDWORLD가 기존 벤치마크보다 훨씬 더 크고 현실적인 태스크 집합에서 에이전트를 평가할 수 있도록 하는 핵심 메커니즘 -> 이는 단순히 태스크 매개변수를 무작위로 생성하는 것보다 훨씬 더 복잡한 작업 - 왜냐하면, 태스크가 다양한 형태로 변형될 때에도 평가 논리가 유효하게 유지되도록 해야 하기 때문. -> 이를 통해 온라인 학습 및 RL에 유용하며, 지도학습 실험을 데이터셋 자동생성을 통해 지원할 수도 있음

- 지속가능한 보상

안드로이드월드는 Android Debug Bridge(ADB)를 사용하여 상태를 관리하며 보상신호를 제공하며, 경우에 따라 UI요소도 검증함. -> ADB는 파일 시스템, 데이터베이스, 시스템 설정을 포함한 리소스에 완전 접근 가능 -> 일부 task는 시스템 상태 검사가 어렵기에 UI요소를 분석하여 완료 여부를 확인하기도 함. 상태를 통해 보상을 결정하는 방식은 정확도가 높고, 앱 자체 메커니즘을 활용하기에 신뢰성이 높음. -> UI의 피상적 변화를 감지하는 것보다 기본 시스템 상태를 활용하는 것이 훨씬 더 견고한 평가 방식 - 동일 보상로직을 여러 앱에서 재사용 가능하여 일관성 유지 가능

- Task 조합

시스템 상태에서 테스크 완료 여부를 추론하는 방식은 기존 테스크를 결합하여 새로운 복합 테스크를 생성하는 것을 용이하게 함 ex) 일정에 이벤트 추가, 세부정보를 문자로 보내기 테스크는 "일정생성"과 "문자 보내기" 테스크를 결합한 것.

 

■  ANDROIDWORLDASACOMPUTER-CONTROLBENCHMARK

- M3A

에이전트로 제로샷 방식 및 리엑트 리플렉션 프롬프트를 통해 의사 결정을 업데이트. -> json 형식으로 표현된 행동과 해당 행동에 대한 추론을 생성 (이를 위해 사용가능한 액션 유형 목록, 스마트폰 조작 가이드라인, 접근성 리프 노드에서 파생된 UI 목록을 정보로 제공 받음. ) -> 에이전트는 현재 스크린샷과 set of mark(som) 주석이 추가된 스크린 샷을 함께 받음. som 스크린 샷은 ui 요소별로 라벨이 포함된 바운딩 박스를 표시. -> 특정 마크를 참조하여 조작을 수행하여 출력된 행동을 실행하려 시도. - 이외에도 텍스트 기반 변형 모델을 개발 ( 접근성 트리를 활용하여 화면을 텍스트로 변환하고, 해당 정보를 바탕으로 적절한 json 형식의 액션을 선택) - 행동을 실행한후, M3A는 상태효과를 관찰하여 그 효과를 반영 (reflect) - 이후 에이전트는 summary를 제공하도록 요청. 요약에는 성공 실패, 실패 가능원인, 의도된 행동 등이 있으며, 이 요약은 행동 이력으로 저장되며 추후 행동 선택에 활용됨
- SeeAct 베이스라인 에이전트

gpt-4v를 활용하여 웹탐색하도록 설계된 모델. 텍스트 기반 선택지를 통해 행동을 결정. 기존 웹 기반을 모바일 환경에 맞게 액션 공간을 확대. dom이 없는 대신, 접근성 트리를 활용해 ui 액션 후보군을 구성. 

- 실험결과

M3A, M3A-SIMPLE, SeeActANDROIDWORLD 및 MobileMiniWoB++ 환경에서 평가

에이전트는 인간보다 뒤떨어지나, 기본 ui 제어 능력을 갖추고 있음을 보여줌. M3A는 롱 프레스, 스크롤을 통한 정보검색, 실패시 계획 수정 등 다양한 행동을 수행. M3A + GPT-4가 최고 성능 / 안드로이드월드에서 som 기반 변형 모델이 성능이 낮았으나, mobileminiwob++에서는 높은 성능을 보임. -> 해당 벤치의 접근성 트리가 불완전하기에 som이 중요한 역할을 하는 것으로 추측됨. 

간소화 버전은 성공률이 크게 감소 -> 프롬프트 기법 및 도메인별 안내가 인터페이스 조작에 중요한 역할을 한다는 것을 시사 / 그러나 mobileminiwob++에서는 높은 성능을 보임.-> 이 환경은 복잡한 프롬프트 없이도 수행이 가능함을 의미

 

■ ROBUSTNESS ANALYSIS

강건성분석을 위해, M3A를 서로다른 랜덤 시드를 사용하여 분석함. 이 시드들은 다른 작업 매개변수를 생성하고, 그에 따른 다른 상호작용 패턴을 요구함. 그 결과, 큰 변동성이 나타남. -> 더 잘 이해하기 위해 두가지 조건에서 강건성을 평가. 

1. 동일 매개변수를 가진 동일한 작업과 2. 다른 매개변수를 가진 작업. (계산 제약상 몇번만)

놀랍게도, 고정된 시드에서도 변동이 있었음. 이는 모델의 비결정성이 신뢰성에 영향을 미친다는 것을 시사. 물론 시드가 다를 때 더 크게 변동하며, 작업 매개변수에 민감함을 나타냄. -> RL 연구와의 관찰과 일치 (잘 모르겠음) / RL 베이스 메커니즘을 통한 향상이 가능함을 시사 - os 변형 처리 능력도평가하기 위해, 안드로이드버전 간 ui 레이아웃 차이를 나타내봤지만 능력을 유짛하는 것을 보임. -> 다양한 조건에서 테스트하는 것의 중요성

■ Conclusion

안드로이드월드는 벤치마크 성능을 설정하여 동적 온라인 학습 알고리즘에 대한 새로운 연구 기회를 열어줌

 

 

 

■ 초록 

에이전트는 상호작용 가능성을 보임, 그러나 별도의 데이터 셋과 모델을 통해 UI 작업을 수행해야함. 그래서 퓨샷(예시)를 통해 다운스트림작업을 일반화 가능하게 함. 이를 위해 UI에 적응시키기 위한 프롬프트 기법을 설계하였으며, 다양한 시나리오를 다루는 네가지 주요 모델링을 실험함. 이를 통해 경량적이고 일반화 가능한 접근 방식을 제공

 

  인트로 

구글 어시스턴트, 시리 등은 상호작용을 발전시켰지만 그 한계를 가져 화면 상 정보에 대해 사용자 질문에

답변을 하지 못함 , 이를 위해선 GUI에 대한 계산적 이해가 필요함. 이를 위해 이전 연구들에서는 여러 노력이 있었음 -> 

1. 화면의 목적을 빠르게 이해할 수 있도록 모바일 화면을 요약하는 방법

2. 언어 명령을 UI 동작과 매핑하는 방법

3. GUI를 언어적 상호작용에 더 적합하도록 모델링하는 방법

그러나, 이러한 연구들은 대규모 데이터 셋 구축과 전용 모델 학습에 많은 노력이 필요 -> 따라서 경량화 되면서 일반화 가능한 접근 방식 개발이 매우 중요함. 이때, LLM과 같은 모델이 퓨샷 프롬프트를 통해 다운스트림 작업에 적응할 수 있음이 나타남. -> 다양한 대화형 상호작용을 지원할 수 있는 가능성을 제공. -> 그러나 GUI와 LLM이 상호작용할 수 있을 지에 대한 연구가 부족, 실현 방법도 부족 -> 따라서 해당 연구에서는 LLM을 상호작용 가능케 활용하는 방법과 실현 가능성을 조사함.

-> 그에 대한 방법으로, UI에서 대화형 상호작용을 네가지 주요 시나리오로 분류하고, 이를 기반으로 실험할 모델링 작업을 선정. 또한 새로운 프롬프트 기법을 개발. LLM은 텍스트만 입력으로 받기 때문에 모바일 UI를 텍스트로 변환하는 알고리즘을 개발. -> 깊이 우선 탐색 알고리즘을 활용하여 뷰 계층 구조를 HTML로 받아들임

-> 네가지 모델링은, 화면 질문 생성, 화면 요약, 화면 질문 응답, UI 동작 매핑임

본 연구를 통해 화면 질문 생성, 화면 질문 응답 작업을 탐구한 최초의 연구이며, 이를 위해 벤치마크 성능을 설정함

화면 요약 작업에서 기존 모델보다 더 정확한 요약을 생성하는 것으로 나타남. 특히, 몇가지 예시만 사용한다는 점을 부각

본 연구는 다음과 같은 기여를 수행. 

1. LLM을 활용한 첫번째 모바일 UI 대화형 상호작용을 가능하게 하는 방법을 조사

2. GUI를 이애하는 새로운 방법을 제안(새로운 GUI 변환 알고리즘과 프롬프트 기법을 설계, 오픈소스 제시)

3. 다양한 UI 대화형 작업을 실험하여 적응 가능성을 검증(네가지 모델링 작업, 개발이 가능함을 시사)

 

  related work 

- GUI와 자연어 간의 연결 : 이전 연구들은 대량의 데이터셋을 활용하기 위해 특정 작업에 맞춰 모델을 학습시킴 / 반면 본 연구는 퓨샷 능력을 활용하여 소규모의 예제를 가지고 언어 기반 UI 작업을 수행하는 방법을 제안. -> 이를 위해 자연어 처리에 최적화된 LLM이 UI를 효율적으로 처리 가능한 UI 표현 방식을 도입

- 사전학습된 LLM 프롬프트 활용 : gpt3, few shot, cot / 본 연구는 모바일 작업에 최적화된 새로운 프롬프팅 기법을 제안

- LLM의 인터랙티브 응용 : HCI 분야에 다양한 응용에 활용 

 

  CONVERSATION FOR MOBILE UI TASKS / Task

모바일 기기와 대화형 상호작용은 일반적으로 정보를 교환하는 형태임. 이 대화 시나리오를 네 가지로 분류하는 개념적 프레임워크를 개발. (주도권과 목적 차원에서) 

 

  PROMPTING LARGE-LANGUAGE MODELS FOR MOBILE UI TASKS  / Method

- 개요

LLM을 모바일 UI에 적응시켜 대화형 상호작요을 가능하게 하는 프롬프팅 기술을 소개(퓨샷 기반)

퓨샷에 대한 여러 접근이 있지만, 모바일 UI에서 LLM을 프롬프팅하는 방법론은 아직 확립되지 않았으며, 여러 도전과제를 포함함

1. 언어 모델은 텍스트만 처리하지만, UI는 다중 모달 정보임

2. 모바일 화면의 뷰 계층 구조 데이터를 LLM에 직접 입력하는 것이 어려움. (UI 요소 및 세부 속성의 과정보, LLM의 토큰 한계)

3. 모바일 UI의 목표 작업과 관련도니 논리를 추론하기 위한 UI 문맥에 기반한 논리적 추론이 필요

-> 두가지 문제 발생(퓨샷을 위해 어떻게 텍스트로 표현할 것인가? 어떻게 논리적 추론을 이끌어 낼 것인가?)

-> 이를 위해 프롬프팅 기술과 그 설계 원칙을 설명함. - 이후 연구에서 이 설계를 기반으로 발전하고 연구되길 기원함

- 화면 표현

여러 방식이 있음. ex ui 요소를 자연어로 설명, 문자열로 결합 등. 하지만, LLM은 HTML 구조를 많이 학습했기 때문에, 모바일 UI를 텍스트로 나타내기 위해 HTML 구조로 변환하는 방식을 선택. 본래 웹 구조를 설명하는 언어이기에 UI와 적합함. -> 변환과정( DFS -> 뷰계층을 순회하며 변환) -> 이를 통해 완벽하진 않지만 가깝게 만들기

-> 뷰 계층 구조는 UI를 트리 형태로 표현, 다양한 속성을 포함. -> 모든 속성을 사용하면 토큰 길이 커질 수도 있음 -> 텍스트 설명과 관련된 일부 속성만을 선택 ex) class, text, id, description

-> ui 클래스와 기능적으로 유사한 html 태그를 휴리스틱을 통해 매핑 ex) TextView -> <p> 태그

-> 텍스트 id 등은 태그 사이에 삽입

-> 이후 숫자 인덱스 부여

- COT 프롬프팅

모바일 UI는 사용자 작업의 논리를 포함하고 있으므로, 논리적 추론이 중요함. LLM은 이미 추론 능력이 있으며, COT는 그러한 추론 능력을 향상시킴. 기존 연구에는 UI에도 적용되는지 검토된 바가 없기에, 본 연구에서는 이를 실험에 포함함. 이를 통해 COT가 효과적임을 확인함. 하지만, 입력된 화면 HTML에서 직접 출력을 도출할 수 있는 경우 별로 성능 향상이 없어 이러한 기법은 여러 단계의 추론이 필요한 화면 질문 생성 작업에 대해서만 기법을 적용

-> 프롬프트 구조 - 목적을 설명하는 preamble, html, cot, 출력으로 구성된 여러 examplor

 

결과 2. 예시

 

FEASIBILITY EXPERIMENTS

네가지 작업을 중심으로 실험을 실시. 각 작업에 대해 퓨샷을 적용, 예제 데이터를 선택하고, 이를 통해 프롬프트를 구성. 

효과성 평가를 위해 각 작업에 적합한 평가 지표를 설정하고 실험을 진행. 실험에는 Palm 모델을 사용. gpt3와 유사한 성능을 보임. 1920개 토큰을 입력으로 받을 수 있으므러, 테스트 화면을 제외하고 프롬프트 예제 개수는 최대 2개로 재한. 이를 통해 성능을 평가하고, 기존 규칙 기반 접근법과 비교할 예정

- 화면 질문 생성

모바일 UI 화면을 기반으로 자연어 질문을 생성하는 것이 목표. 에이전트가 UI에서 사용자 입력을 요청해야하는 상황에서 발생

프롬프트 구성 -> Preamble, Cot

실험설정 -> RICO 데이터셋에서 무작위 400개 화면을 샘플링. 각 화면은 적어도 하나의 Edit Text(입력 필드)가 포함됨. 입력필드가 여러개인 경우, 관련 항목을 하나의 질문으로 결합하도록 함. 출생년도, 월을 개별로 묻는 대신 생일이 언제인가요라고 한번에 묻는 질문을 생성

규칙 기반과 비교 ex) UI 요소를 활용하여 질문을 자동 생성

평가 지표 -> 문법 정확성(5점 리커트 척도), ui 연관성(이진평가), 질문 커버리지(F1 점수 계산)

결과 -> 931개의 질문 평가, 질문은 세명의 인간 평가자가 검토 / 더 높은 연관성을 보임

분석 및 의미 -> ui 기반으로 LLM이 자연스럽고 맥락적으로 적절한 질문 생성이 가능. 추가적으로, 여러 방면에서 사용가능

- 화면 요약 

핵심 기능을 설명하는 언어적 개요을 자동으로 생성.

프롬프트 구성 -> cot 사용 안함. html과 요약문을 짝지은 예시를 nshot

실험설정 -> Screen2Words 데이터셋을 활용하여 평가. 24,000개 화면과 5개 요약 레이블을 각각 포함.

예제 구성에는 무작위 선택 화면 2개와 그 중 하나의 요약문을 사용. 평가에는 Bleu, Rouge 등 자동화된 지표를 사용

기존 연구에서 인간의 인식과 평가 점수가 안맞는 다고 밝혀져, 추가적으로 인간 평가를 실시 -> 37명을 모집하여 LLM과 기존 s2w 모델이 생성한 요약문 두개를 제공하고 어느쪽이 더 정확한지 선택하도록 함

결과 -> 제로샷은 의미있는 요약을 생성하지 못함. oneshot dms zmrp gidtkd, two shot은 작게 향상

LLM이 더 다양하게 표현함. 하지만, 자동 평가 점수에서는 단순히 단어 매칭을 기반으로 하기에 s2w모델이 더 좋은 점수를 받음. 휴먼 평가는 그 반대.

llm이 더 뛰어나지만, 화면내 텍스트가 부족하거나 하면 성능이 떨ㅇ지ㅣㄹ 수 있으며, s2w처럼 시각 정보 모델과 활용할 필요가 있음. 또한 LLM은 특성 텍스트를 활용하는 경향이 강하며, 더 길고 자세하며 사전 지식을 잘 활용함

- 화면 질문응답

ui에 대한 개방형 질문이 주어졌을때, 올바른 답변을 제공해야함. 화면에 표시된 사실에 기반한 질문에 초점을 맞춤. 논리적 추론 없이 직접 읽을 수 있는 정보를 요구

프롬프트 구성 -> 질문 답변쌍을 preamble 뒤에 제공. 

실험 설정 -> RICO 데이터셋에서 121개의 고유한 화면에서 추출한 300개의 사람이 라벨링한 QA 쌍을 사용.

데이터 라벨링은 두 단계로 진행 -> 질문 작성(스크린샷 기반으로 직접 읽을 수 있는 정보를 생성), 답변 작성

3개의 화면을 홀드아웃하여, 각 화면에서 무작위 QA를 쌍 1개씩 샘플링하여 사용. 본 연구는 정확한 뷰 계층 데이터에 존재하는 정답만을 집중. 

생성된 답변은 추출이 아닌 생성 방식이기에, 라벨과 완전히 일치하지 않음. 이를 위해 4가지 평가 기준을 설정

1. exact  atch 완전히 일치

2. contain gt,  정답을 포함하지만 더 긴경우

3. sub string of gt, 정답의 일부인 경우

4. micro F1, 일치도를 바탕으로 계산

기존 QA 모델인 DistilBERT와 비교 실험을 진행 -> 기존 QA 모델은 정답을 추출하고, LLM은 생성하므로 동의어 처리가 어려울 수 있음. 따라서 LLM이 더 낮게 측정될 가능성이 있음

결과 -> QA 성능의 사전 지식이 있어 LLM도 QA 가 나쁘지 않게 나옴. Distilbert는 html로 학습되지 않아 QA  작업에서는 성능이 낮게 나옴

LLM은 2샷에서 정확하게 답변함, 하지만 추가로 생성하는 경우가 있음. 

결론적으로 LLM은 QA를 잘 수행하고, 적절한 예시가 제공되면 성능이 크게 향상됨

 

■ Mapping Instruction to UI Action

UI 화면과 자연어 명령을 바탕으로 모델이 해당 명령을 수행하기 위해서는 UI 요소의 ID를 예측해야함. 모바일 앱을 제어하기 위함

프롬프트 구성 -> 매핑 데이터셋

프롬프트로는 뛰어남

 

DISCUSSIONS AND FUTURE WORK

이 연구에서는 모바일 UI에서 대화형 인터페이스를 활용한 LLM(대형 언어 모델) 기반 상호작용의 가능성을 탐구했다. 이를 통해 언어 기반 인터페이스 설계가 간단한 데이터 예제만으로도 가능하며, 신속한 프로토타이핑 및 실험이 가능하다는 점을 강조했다.

-언어 기반 상호작용 면에서, 새로운 가능성 제시( 사용자가 예제 입력을 통해 직접 모델을 학습시킬 수 있는)

-결과

 

  • UI 질문 생성(Screen Question-Generation) 및 질문 응답(Screen Question-Answering)에서 긍정적인 결과 도출
  • UI 요약(Screen Summarization)에서는 기존 모델보다 정확한 결과를 보임
  • UI 조작 매핑(Mapping Instruction to UI Action)에서는 기존 모델보다 다소 낮은 성능을 보였으나, 소규모 데이터로도 경쟁력 있는 성과를 보임

-다중 화면 및 다중 턴 상호작용 확장 가능성( 예: 호텔 예약 시 여러 화면을 오가며 필요한 정보를 제공하는 복합 대화 가능)

- 샷학습, 입력 길이, 모델 성능

첫번째 샷이 가장 큰 영향. 입력 제한을 고려한 프롬프트 선택 필요. 간결한 표현방법을 위한 압축 기법 활용 가능

- 스크린 표현 방식 개선

 

  • 현재 연구에서는 UI의 계층적 구조(view hierarchy)만 활용했으며, 픽셀 기반 이미지, 오디오 등은 고려하지 않음
  • 향후 연구에서는 다중 모달(Multi-modal) 접근을 통해 UI 내 아이콘, 이미지, 미디어 콘텐츠 등을 활용할 필요 있음

- LLM 조정 가능성과 예측 신뢰성

언제 어떻게 동작들을 수행해야하는지 직접적으로 제어할 방법이 부족. 환각 문제 발생. -> 해결해야할 과제

-일반화 가능성

 

 

7. 결론

우리는 대형 언어 모델(LLM)을 활용하여 모바일 UI에서 다양한 대화형 상호작용을 가능하게 하는 방법의 실현 가능성을 조사했다.

먼저, 모바일 작업 중 사용자와 에이전트 간의 대화 시나리오를 분류하여, 연구해야 할 4가지 핵심 UI 작업을 식별했다. 그런 다음, LLM을 모바일 UI에 적응시키기 위한 일련의 **프롬프팅 기법(prompting techniques)**을 제안하였다.

이후, 선정된 4가지 작업에 대해 광범위한 실험을 수행하여 우리의 접근 방식의 효과를 평가하였다. 그 결과, 비싼 데이터 수집과 모델 훈련이 필요한 기존의 전통적인 머신러닝 파이프라인과 비교했을 때, LLM을 활용하면 빠르게 새로운 언어 기반 상호작용을 실현할 수 있으며, 동시에 경쟁력 있는 성능을 달성할 수 있음을 확인했다.

■ 증분학습(incremental learning)이란?

 

1) 증분학습이란 무엇일까?

증분학습, 이름부터가 어렵다. 그렇다면 연속 학습(continual learning)이라는 단어는 어떨까? 조금 쉬어보인다. 세밀한 의미에서 맥락은 조금 다르다곤 하지만, 증분학습과 연속학습은 AI 분야에서 비슷한 방법론으로 통한다. 

 

증분학습(연속학습)은 모델이 새로운 데이터를 받을 때마다 그 데이터를 추가로 학습하면서 기존의 지식을 유지하면서도 새로운 환경 변화에 실시간으로 대응할 수 있는  방식을 말한다. 

 

 

예를 들어, '고양이'와 '개'를 구분하는 classification 모델이 있다고 하자. 그런데 새로운 '새'라는 데이터가 들어와 이를 구분해야한다. 그렇다면 해당 모델이 '새'를 구분할 수 있도록 추가적으로 학습을 진행하지만, 그러면서도 '고양이'와 '개'를 구분하는 능력을 잊지 않게 하는 학습방법이다.

 

여기까지 읽었다면 새로운 데이터를 재학습시키면 되지 굳이 왜 증분학습이라는 개념을 따로 만들어서 구분하냐라는 의문이 생길 것이다. 하지만 이 증분학습은 기존의 데이터에 새로운 데이터를 추가해서 학습하는 것이 아니라, 새로운 정보만을 학습한다는 점에서 차이를 갖는다. 그렇다면 굳이 간단해 보이는 재학습을 두고 증분학습을 새롭게 도입하려는 이유는 무엇일까?

 

2) 증분학습이 왜 필요할까?

첫째, 효율성이다. 기존의 모델 데이터셋에 새로운 데이터를 추가하여 모델을 재학습시키기 위해서는, 데이터 전처리, 데이터 병합, 모든 파라미터에 대한 모델 학습, 모델 평가 등 리소스를 잡아먹는 모든 과정을 다시 수행해야한다. 이러한 과정은 모델이 커질 수록, 데이터셋이 클 수록, 새로 들어온 데이터셋이 클 수록 더 심화된다. 하지만 증분학습은 전체 데이터셋을 모두 학습하지 않기 때문에, 학습 시간과 자원을 절약할 수 있다는 장점을 갖는다.

 

둘째, 유연성이다. 증분학습은 새로운 데이터가 생성될 때마다 모델을 즉시 업데이트할 수 있기 때문에, 빠르게 변화하는 환경이나 데이터에 신속하게 적응 할 수 있다. 또한 다양한 태스크를 순차적으로 학습하는 데에도 적합하다. 

 

셋째, 현실성이다. 실제 모델이 적용되는 산업환경에서 모델 수행과정은 한번 학습하고 끝나지 않는다. 새롭게 발생하는 이슈에 그때 그때마다 대응해야한다. 예를 들어 자율 주행차를 운전하는 AI 모델이 있다고 하자, 이 모델은 기존이 존재하던 장애물 레이블을 가지고 학습을 하였는데, 낙뢰, 싱크홀과 같은 새로운 장애물이 입력으로 들어온다면, 그때는 모델을 새롭게 바꾸어야할 문제가 발생한다. 이를 처리하고자 증분학습을 도입하여 빠른 업데이트를 추구한 것이다.

 

3) 증분학습의 종류에는 어떤 것들이 있을까?

증분학습은 여러 종류로 구분되며, 그 방법론과 평가 방식 또한 다양하다. 이 글에서는 큰 흐름만 보기로하고, 궁금한 내용은 각자 구글링을 해보도록 하면 좋을 것 같다.

 

먼저, 규제(regularization) 방식이다. 새로운 task를 학습할 때 기존 지식을 잊어버리지 않기 위해 모델의 파라미터 변화에 규제를 주는 것이다. 

 

그 다음은 증류(Distillation) 방식이다. 새로운 task를 학습할 때 기존의 지식을 증류(즉 축약해서) 해주자는 아이디어이다. 

 

마지막으로 기억(Memory) 방식이다. 이전 task의 일부 데이터만 메모리에 올려놓고 참조하는 일종의 컨닝 페이퍼를 두는 것이다. 특히 memory 방식의 논문들은 증분학습의 주류가 된다.

 

이것들을 제외하고도 증분학습에는 복잡한 과정들과 분류들이 존재한다. 참고하면 좋을 링크를 아래 소개하며 글을 마친다. 실제 모델을 현장에서 적용하고자하는 개발자들은 이러한 증분학습이 어떻게 이루어지는 지를 알고 가면 좋을 것 같다.

 

https://ffighting.net/deep-learning-paper-review/incremental-learning/all-about-incremental-learning/

 

Incremental/Continual Learning 설명 - 정의, 필요성, 데이터셋, 대표 논문

Incremental Learning에 관한 모든 것을 설명합니다. Incremental Learning의 정의, 필요성, 데이터셋, 성능 측정 방식을 알아봅니다. 마지막으로 주요 논문들을 통해 연구 흐름에 대해 자세히 살펴봅니다.

ffighting.net

 

https://junia3.github.io/blog/continual

 

Welcome to JunYoung's blog | Continual learning/Lifelong learning의 개념과 방법론 총정리

이 글은 survey 논문인 A Comprehensive Survey of Continual Learning: Theory, Method and Application를 각색 및 요약한 글입니다. Continual Learning 이란? 인공지능과 유기체의 근본적 차이 인공지능의 주체가 되는 ‘모

junia3.github.io

 

■ AI학회_1주차복습) Introduction To Deep Learning

 

1) What is ML/DL?

머신러닝이란 무엇이고? 딥러닝은 머신러닝과 무엇이 다른 것일까? 예시를 통해 알아보자.

대표적이고 가장 기초적인 머신러닝 기법으로는 Linear Regression(선형회귀)을 들 수 있을 것이다.

Linear Regression/선형회귀

 

이 선형회귀라는 기법에서, 우리는 연속적인 어떠한 값을 예측해내기 위해 1차원의 선을 긋는 다는 것을 어렴풋이 이해할 것이다. 그렇다면 이 어떠한 1차원의 파란선을 구하기 위해서는 어떤 방식을 취할 수 있을까?

 

L1,L2 거리 / Distance Matrics

 

바로 실제값과 예측값의 오차가 가장 작아지는 파란 선을 구하는 것이다. 여기서 오차는 실제값과 예측값의 거리로 나타낼 수 있으며, 흔히 맨해튼 거리(L1), 유클리드 거리(L2) 등이 사용된다. 자, 이제 오차가 가장 적어지는 파란선을 그어야 겠다는 목표가 탄생했다. 그렇다면, 그 목표를 어떻게 이룰 수 있을까?

 

강의자분께서는 선형회귀 수준에서는 Normal Equation(정규방정식)과 Coefficient(코사인 유사도)를 이용한 방법을 오차를 최소화하는 method로 제시하셨고, 앞으로 딥러닝 수준에서는 이와 달리 Gradient decent(경사하강법)을 이용할 수 있다고 설명했다. **해당 건에 관해서는 후에 수식을 조금 더 조사해볼것.

 

앞서 파란선을 그으며 우리가 보았던 표는 x 영역의 한가지 피쳐만을 사용해서 2차원 내 1차원 선을 그었다는 것을 다시 집중해보자. Y의 보다 정확한 예측을 위해서, 피쳐를 한가지만 사용하는 것이 과연 최선일까? 만약 여러가치의 피쳐(variable)를 사용하게 된다면, 그 형태는 어떻게 나타날까?

 

3차원 형태

 

바로 피쳐들의 차원이 증가한다. 인풋값은 여러개의 피쳐들이 모인 vector의 입력이 되며, 출력은 Y 그대로 동일하다. 이렇듯 선형회귀는 다양한 피쳐들 중 중요한 여러 개의 피쳐들을 EDA로 판단하여 데이터 추출을 통해 보다 정확도 있게 구현될 수 있다. 하지만, 선형회귀라는 머신러닝 기법은 커다란 한계에 직면하게 된다.

 

2) Limit of Linear Regression

 

이때, 강의자분께서 지적하신 선형회귀의 한계는 바로 Non-Linear Pattern과 Unstructured Data이다. 

XOR 문제

 

먼저 Non-Linear에 대해 고찰해보자. 강의자분께서 정확히는 두 곡선을 한 직선으로 분류해야하는 분류문제를 예시로 들었지만, 난 xor 문제 또한 회귀분석 한계의 좋은 예시라고 생각한다. 먼저 강의자분께서 이러한 분류문제를 회귀분석이나 머신러닝으로 분류할 수 있을까라고 물어보셨을 때, 내게 든 생각은 반반이었다. 비선형관계라면 다항회귀나 svm 머신의 커널, 그리고 고차원 매핑등의 방법이 있을 지도 모르기 때문이었다. 하지만 강의자분께서는 두 곡선을 한 직선으로 분류하는 문제는 딥러닝을 통해 해결해야하며, 이 때문에 전통적인 머신러닝 방식보다 요즘 AI에 딥러닝이 주목받는 이유라고 설명해주셨다.

 

나는 실제로 chat gpt를 돌려보며 여러가지 질문을 해보았는데, xor문제와 같은 근본적인 비선형 관계는 다항회귀나 고차원 매핑으로도 해결이 불가능하며, 이는 결국 다항회귀 조차도 비선형 문제를 풀려고하지만 결국 피쳐의 차수를 높여 그 차원 속에서 선형적으로 표현되기 때문이라는 것을 알게 되었다. sirgmoid같이 actiavtion 함수가 없는 이상 결국 선형관계를 벗어나지 못하는 것이 회귀분석의 한계라는 것이다.

 

3) How to Solve Non-Linear Problem?

 

그럼 sigmoid와 같은 activation 함수는 어떻게 비선형 패턴을 해결할 수 있을까? 간단히 설명하자면 활성화 함수가 선형 관계를 비선형적으로 바꿈으로써 왜곡된 새로운 space를 만들어낸다는 것이다. 때문에 이러한 space에 선형적인 weight를 찾게 된다면, 그땐 선형으로 구획할 수 있게 된다. 이에 대한 설명은 아래 링크가 더 잘 설명하고 있다.

 

-> 비선형 함수에 관한 시각적 설명

 

[Deep Learning] 비선형 함수를 사용하는 이유에 대한 시각적 설명

신경망 모델에서 비선형 활성화함수를 사용하는 이유에 대한 두 가지 접근을 알아봅니다.

myeonghak.github.io

 

이때, 우리가 또 고려해야할 것은 바로 convex, non-convex 함수의 개념이다. convex 함수는 볼록함수라 불리기도 하며, 일반적으로 선형적 관계를 나타내는 함수가 바로 그러한 함수이다. 하지만, 비선형 관계의 Loss Fuction들은 대부분 Non-convex하다. 어려운 개념이지만, 결론적으로는 비선형 관계의 지역적인 최소점들이 여러군데 존재하고 있어 일반적인 정규표현식 등으로 Non-convex한 함수는 풀 수 없다는 뜻이다. 앞서 3가지 옵티마이저한 방법들을 설명하면서 딥러닝이 경사하강법을 채택하고 있다는 이유가 바로 이 점이다. 

 

convexity

 

또 하나 주목해볼 점은, Gradient Descent는 딥러닝의 합성함수에서도 작동한다는 점인데, 이게 맞는 해석일지는 모르겠으나 비선형 관계로 변환이 되어 정규표현식의 적용은 불가능하나 기본적으로 f(g(x)) = z(x)로 결국 z(x)라는 함수식에서 Gradient Descent가 가능하기에 합성함수에서 작동이 가능하다고 생각되어진다(혹시 지적할 부분이 있다면 댓글로..)

 

4) How to Model Unstructured Data?

 

이제, 또다른 한계로 지적된 Unstructured Data에 대해 살펴보자.

 

Image to scalar

 

위와 같이 이미지나 음성파장은 결국 숫자인 스칼라로 바뀌어야 컴퓨터가 이해할 수 있다. 문제는 이미지 데이터나 문자 데이터 등 이러한 데이터들은 변환될 때 굉장히 많은 피쳐 space를 가지고 변환이 된다는 것이다. 당장 이미지는 RGB로 512*512*3 = 786432의 space를 가지게 되는데, 이는 차원의 저주를 불러온다는 점, 그리고 계산 리소스가 너무나 크다는 점에서 문제가 발생한다. 

 

-> 차원의 저주란?

 

차원의 저주와 차원 축소 개념

# 차원의 저주에 관해 설명해주세요. 차원의 저주는 저차원에서의 직관이 고차원에서는 성립하지 않는다는 것에서 시작됩니다. 2차원의 단위면적을 가진 정사각형 안에 있는 점을 무작위로 선

mole-starseeker.tistory.com

 

5) Meaningful space and Inductive Bias

 

여기서 강의자분께서는 놀라운 관점을 제시하는데, 이러한 차원의 저주 속에서 실제 space를 확인해본다면 실제로 의미있는(meaningful) 부분은 따로 존재한다는 것이다.

 

Meaningful space

 

위와 같은 이미지의 space에서 실제적인 부분은 저 나산형 부분임을 알 수 있다. 그렇다면 여기서 우리는 여러 가설을 설계해 볼 수 있을 것이다. 비정형, pure 데이터는 너무나 크다. 하지만, 의미있는  meaningful space는 그러한 space의 작은 일부분이다. 우리가 만약, meaningful space만 모델링할 수 있다면, 우리는 더 작은 데이터와 리소스를 가지고 훌륭한 예측을 수행할 수 있다. 여기서 우리는 '가정'을 사용해야 한다.

 

훌륭한 컴퓨터 사이언티스트들에게 '가정'이란, 바로 Inductive Bias이다.  바로 학습 알고리즘에서 학습자가 아직 접하지 않은 주어진 입력의 출력을 예측하기 위해 사용하는 일련의 가정이다. CNN의 컨볼루션 신경망, RNN의 순환신경망들이 바로 그러한 가정들을 컴퓨터가 작업하도록 만드는 과정인 것이다. 이러한 과정을 통해, real space의 엄청난 수의 차원을 가진 벡터들을 meaningful space의 몇가지 중요한 벡터들로 압축할 수 있다. 물론 정보량의 관점에서 입력 데이터보다는 소실되게 되지만, 충분히 적은량의 데이터로 좋은 결과를 뽑아낼 수 있게 된 것이다.

 

여기서 재밌는 관점을 강의자께서 또한 소개해주셨는데, 바로 데이터와 리소스가 무한한 상황을 가정할때, CNN과 같은 과정없이 실제 real space만으로 모델링이 될까?라는 궁금증이다. 정답은 yes이다. 실제적으로 몇 조개의 weight를 관리하는 openai의 모델들이 바로 그러한 모델이다. 조금 어려운 부분이지만, 강의자분은 결국 CNN에서 파악하는 어떤 부분이 중요한 패턴인지를 파악하는 부분 또한 미리 지정해주지 않아도 결국 거대 모델이 학습을 통해 알아낼 것이라고 말씀하셨다. 

 

finally..

 

결론적으로, 딥러닝에서 가장 중요한 과정은 바로 Meaningful space를 통해 의미있는 Vector들을 뽑아내는 것이다. 그 외 출력층은 이진분류인지, 다중분류인지에 따라 출력 함수를 바꿔주는 부분, 그리고 입력에서 이미지를 쓸 것인지 토큰화된 단어들을 쓸 것인지의 차이인데 이것은 결국 파이프라인과 같이 쉽고 빠르게 만질수 있는 부분이다. 중요한 것은 그 space를 찾아내는 것이다. 

 

 

맛보기) 스타트업의 지원 요건 / 딥러닝 질문

 

여러분은 몇개나 대답하실 수 있으신가요?

 

 

Gradient Descent란?

-> (경사하강법) 1차 미분계수를 이용해 함수의 최솟값을 찾아가는 intrative한 방법 / 비용 함수를 최소화하는 파라미터 θ를 찾는 알고리즘 / 주어진 함수에서 극소점을 찾기 위해 gradient가 최소가 되는 지점을 찾아가는 방법

 

+ Optimization(최적화)과 Loss function(cost function)

-> 최적화란, 최적의 파라미터를 찾아가는 방식 / 모델의 예측값과 실제값의 차이를 우리는 오차라고하며, 이 기준은 손실함수임 / 손실함수란, 예측값과 실제 값의 차이인 loss를 함수로 나타낸 것.

 

Loss Surface란?

 

Attention이란?

 

Transformer란?

 

sigmoid의 단점은? **

-> sigmoid는 지수함수가 포함되기 때문에 나눗셈과 같은 복잡한 수학적 연산이 필요해 (RELU 등에 비해) 계산 효율성이 낮음 / 그레디언트 소실 문제가 발생 / 따라서 거의 출력층에서만 사용하게 됨(보통 이진, 범주형) / 또한 RNN 등 시간경과 데이터 입력의 변화는 시그모이드 함수가 적합할 수도 있음 

 

Validation 세트, Test 세트의 각각 역할은?

 

AutoEncoder란? **

 

Dropout의 효과는?

정규화 기법의 일종, 모델의 과적합을 방지함. why? 일부 뉴런을 랜덤하게 제거하여 학습을 제거하는 데에 이때 일부 뉴런에 과도하게 의존하는 것을 방지하고 전체적으로 일반화된 모델을 만들 수 있게 됨. / 장점 : 과적합 방지, 앙상블 효과(랜덤하게 선택된 뉴런을 사용함으로), 계산 효율성

 

CNN의 장점은?

 

Word2Vec의 원리는?

 

Adam Optimizer의 동작은?

 

Batch Normalization의 동작은?

 

Cycle GAN이란? 

 

Collaborative filtering이란?

 

Few-shot Learning이란?

 

Federated Learning이란?

 

SVD란?

 

중심극한정리란?

 

 

 

_AI학회_1주차복습) Introduction To Deep Learning에서 발췌

(세부내용 업데이트예정)

■군대 싸지방에서 프로그래밍하기 - 이세계에서 개발하는 법에 관하여

 

사이버지식정보방, a.k.a 싸지방의 보안 정책은 엄격하다. 모 사단 본부대에서 군생활을 보냈던 필자는 싸지방을 이용하여 프로그래밍을 공부했었는데, 그때마다 싸지방의 보안환경은 필자를 힘들게 했다. 때문에 개발에는 제약이 생겼고, 이를 타파하기 위해서는 기존 개발 방식과는 차이를 가져야 했다. 오늘은 그 노하우를 조금 공유하고자 한다.

*해당 글은 21년도 여름 군번 기준입니다.

 

프로그래밍이 힘든 이유

싸지방에서 프로그래밍이 힘든 이유는 다음과 같다. 첫째로, 싸지방 pc는 오픈소스 OS인 리눅스 민트를 기반으로 만든 하모니카 개방형 os를 채택하고 있다. 사회에서 흔히들 사용하는 window 대신 이런 이름도 들어보지 못한 OS를 사용한 이유는 항상 군이 그렇듯 돈 문제이다. (보안 상의 이유도 물론 존재하지만.. 사업자 선정 과정을 보면 최저가 입찰제가 적용된 것이 가장 큰 이유인 듯 해보인다.) 라이센스가 필요한 window보다 리눅스는 싼 업체에서 버젼을 조달해올 수 있기 때문이다. 하지만 전공자들이라면 시스템 프로그래밍 수업을 통해서 리눅스를 많이 사용해 봤기 때문에 큰 어려움이 없을 것이라 생각할 수 있다. 허나 문제는 개방형 OS라는 이름을 붙였으면서 정작 터미널을 사용하지 못하게 막아놨다는 점에 있다. 이는 사용환경에 있어서 시스템 내부를 건드리거나 관리자 권한을 조작하는 것이 제약된다는 문제를 발생시킨다.

 

둘째로, 피시방과 비슷하게 사용시간이 종료되면 프로그램과 파일이 초기화되어버린다는 것이다. 사실 이게 제일 큰 문제이다. 로컬 환경에서 IDE를 다운받고, 실컷 코딩을 해서 저장한다 하더라도 재부팅하면 모든 노력이 수포로 돌아간다. 심지어 2시간이 지나면 아주 친절하게 친환경을 생각하여 직접 로그아웃을 시켜주기도 한다. 해당 OS를 제공하는 업체에서 클라우드 파일 기능을 제공해주긴 하지만, 애초에 용량이 큰 코드나 데이터들을 매번 업로드하고 다운로드하는 것은 현실적으로 힘들 수 밖에 없다.

 

물론 이 모든 정책과 제도들이 멍청한 실수들은 아니다. 해킹과 자료유출을 막기 위해 채택된 어쩔 수 없는 보안정책들이다. 군이기 때문에 어쩔 수 없는 것이다. 허나, 해결책은 항상 있다.

 

쉽게 프로그래밍하는 법

몇몇 기업들은 웹을 통해 코딩할 수 있는 개발환경을 제공한다. 맞다. 머신러닝을 조금이라도 접해본 사람들이라면 아는 그것 바로 COLAB과 같은 서비스들이다. 이러한 서비스들은 로컬 환경의 리소스들을 사용하는 것이 아니라, 해당 기업들의 클라우드 서버를 활용해 코드들을 돌리는 방법이다. 이러한 웹 개발환경 서비스들로는 앞서 말했던 구글의 COLAB, cloud9, 구름 IDE 등이 있다.

 

 

Google Colaboratory

 

colab.research.google.com

 

 

구름HOME

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

내가 주로 사용했던 것은 COLAB이었는데, 아쉽게도 COLAB은 머신러닝을 위한 라이브러리들을 GPU 환경에서 돌리기 위한 목적으로 개발된 서비스기 때문에 파이썬 언어밖에 지원하지 않는다. 만약 자바나 C언어와 같은 다른 언어를 가지고 프로그래밍하려는 군 장병들은 구름 IDE를 사용하는 것을 추천힌다. 구름 IDE는 각 언어들을 정하여 컨테이너를 만들기 때문에 독립된 환경에서 다양한 프로그래밍 개발을 시도할 수 있다는 장점이 있다. 또한 좋은 점은 이러한 서비스들이 무료료이며, COLAB을 제외하고는 별도의 타임 리밋이 적용되지 않는 다는 점이다. (COLAB은 12시간의 세션 제한이 있다.) 

 

물론 단점도 있다. 클라우드 서버 기반인 만큼 GUI 기능이 제공되지 않고, i/o장치와 연결해서 하는 부분들도 제대로 구현하기가 힘들다. 말 그대로 서버컴퓨터와 비슷한 환경이기 때문이다. 그러나 알고리즘 공부나 머신러닝과 같은 프로그램들을 만드는 데에는 전혀 부족함이 없을 것이다.

 

까다로운 환경이지만, 지금은 제대한 다양한 군인 개발자들이 남겨준 자료를 통해 군대에서도 의미있는 시간을 보낼 수 있었던 것 같다. 혹시 추가적인 자료를 찾고 싶다면, 그리고 자신이 행정 작업에 동원된 군 장병이라면 시간이 된다면 정보포털에서 IT 게시판을 찾아가 보는 것을 추천한다. 정말 다양한 선임 군인 개발자들이 남겨논 정보를 확인할 수 있을 것이다. (내가 봤던 어느 개발자는 싸지방 피시와 자신의 집 NAS 서버를 연결해서 프로그래밍하는 정보글도 올려놨었다..) 

 

아무것도 없는 불모지에 부딪혀온 구세대 싸지방 개발자들에 경의를 표하며, 지금도 나라를 수호하는 모든 국군 장병들에게 응원의 메시지를 남긴다. 

 

 

  

+ Recent posts