강화학습을 이용한 SMT 공정의 Chip Mount Planning 최적화

Songsub Leo Lee
We’re Team MakinaRocks!
30 min readDec 5, 2022
Chip mounter가 PCB 위에 부품을 장착한는 장면.

안녕하세요. 마키나락스 ML솔루션팀 머신러닝 엔지니어 이송섭입니다. 제가 속한 ML Application 2 part는 강화학습을 활용해 산업의 다양한 문제를 해결하고 있습니다.

오늘은 마키나락스가 지난 3개월간 한화정밀기계와 함께 진행한 SMT 공정의 chip mount planning 최적화 문제와 강화학습을 통해 얻은 초기 결과를 소개드리려고 합니다.

전자기기의 회로는 Printed Circuit Board(PCB) 기판을 이용하여 구성됩니다. 이러한 PCB 기판의 정해진 위치에 전자 부품을 장착하고, 회로를 연결하여 기판을 조립하는 기술을 SMT라고 합니다. 일상을 넘어 산업에서도 전자기기가 많은 부분을 차지하는 만큼, 설계한 PCB 기판을 조립하여 전자기기를 완성하는 SMT는 산업에서 굉장히 중요한 기술입니다[1].

SMT 공정 중 로봇팔을 이용해 PCB 기판 위로 전자 부품을 옮겨 장착하는 공정을 chip mounting이라고 합니다. Chip mounting의 핵심 목표 중 하나는 로봇팔을 효율적으로 움직여 짧은 시간 안에 장착을 마치는 것 입니다. 이러한 chip mounting 공정에 소요되는 시간을 단축하기 위해서는 chip mounter 장비의 하드웨어 성능도 중요하지만, 로봇팔의 부품 조립 순서를 효율적으로 계획하는 것도 중요합니다.

Chip mounting 공정에 소요되는 시간이 감소되면 더 빠르게 칩을 조립할 수 있고, 이를 통해 더 많은 칩을 생산하며 결과적으로 더 높은 이익을 보장할 수 있습니다. 단적인 예를 들자면, 공정의 소요 시간을 10% 줄일 경우, 10개의 생산 라인으로 11개 라인의 생산성을 가질 수 있습니다. 따라서, 로봇팔의 부품 조립 순서를 계획하는 chip mount planning은 이익에 직결되는 중요한 요소입니다.

마키나락스는 지난 3개월간 한화정밀기계와 함께 chip mount planning 최적화를 위한 프로젝트를 진행했습니다. 프로젝트의 가장 중요한 목표는 “강화학습을 이용한 chip mount planning 최적화가 가능할까?”에 대한 답을 얻는 것이었습니다. 이번 포스팅에서는 강화학습 기반의 chip mount planning 최적화 기법을 테스트 한 내용과 초기 모델의 고무적인 결과를 소개드리려 합니다.

1. 왜 강화학습을 사용했나?

Chip mount planning은 조합최적화(Combinatorial Optimization) 문제의 일종입니다. 조합최적화 문제란 유한한 탐색공간에서 가장 좋은 솔루션을 찾아내는 문제입니다. 모든 경우의 수를 다 계산해 보면 가장 좋은 솔루션을 찾을 수 있지만, 조합최적화 문제에서 다루는 문제들은 가능한 경우의 수가 너무 많아 이러한 접근이 불가능합니다.

강화학습이 조합최적화 문제의 유일한 해결책은 아닙니다. 대표적으로 Genetic algorithm[2], simulated annealing[3] 등 metaheuristic이라 불리는 알고리즘들이 일반적인 조합최적화 문제를 해결하기 위해 흔히 사용되는 방법들 입니다. 하지만, 이러한 알고리즘들은 새로운 문제에 대해 매번 다시 계산해야 하는 단점이 있습니다. 심지어 이미 해결했던 문제를 약간만 변형해도 모든 계산을 다시 수행해야 합니다.

반면, 강화학습은 학습된 후 일반화가 가능한 장점이 있습니다[4]. 따라서, 이미 학습된 강화학습 모델이 있다면 짧은 시간 안에 문제에 대한 답을 도출할 수 있습니다. 이런 이유로 짧은 시간 안에 답을 도출하는게 중요한 제약조건이라면 강화학습을 사용하는것이 유리합니다. 한화 정밀기계와 진행한 이번 프로젝트 역시 추후 배포시 추론 시간에 대한 제약 조건을 만족하기 위해 강화학습을 사용했습니다.

그렇다면 모든 조합최적화 문제에 손쉽게 강화학습을 적용할 수 있을까요? 그렇지 않습니다. 강화학습을 사용하려면 강화학습을 사용하기 위한 조건이 갖추어 져 있어야 합니다. 실제로 강화학습을 현실적으로 사용하기 어려운 가장 큰 이유는 학습에 필요한 simulator가 없거나, 있더라도 부정확해 강화학습을 사용할 수 없는 환경이기 때문입니다.

이번 한화 정밀기계와의 프로젝트는 강화학습을 적용하기에 좋은 환경입니다. 일단, 사용 가능한 simulator가 이미 구현되어 있습니다. 또한, 사용 가능한 simulator가 가볍고 속도가 빨라 강화학습 모델이 많은 경험을 할 수 있는 환경이 갖추어져 있었습니다. 따라서 저희는 강화학습을 적용하기에 적절한 환경이라고 판단했습니다.

2. Chip mounter는 어떤 방식으로 작동할까?

Chip mounter는 장착할 전자 부품을 로봇팔에 공급하는 부분과 부품을 집어 PCB 기판 위에 장착하는 로봇팔로 이루어져 있습니다. 물론 실제로는 더 복잡하지만, 필요한 부분만 설명하기 위해 간략화 하였습니다.

Chip mounter 개략도. Gantry는 PCB와 평행한 방향으로, head는 PCB에 수직으로 움직일 수 있다.

먼저, 로봇팔에 장착할 전자 부품을 공급하는 부분을 feeder라고 부릅니다. 위 그림에서 회색 박스로 표현된 부분입니다. 로봇팔은 feeder에서 장착할 부품을 흡착한 후 PCB 기판 위에 내려놓게 됩니다. 즉, feeder는 chip mounter에서 사용할 부품을 저장하고 공급하는 창고 정도로 이해할 수 있습니다.

둘째로, 로봇팔입니다. 로봇팔은 gantry라고 불리는 프레임에 여러개의 head가 달려있는 형태입니다. 위 그림에서 gantry는 파란색 박스로, head는 노란색 박스로 표현되었습니다. Chip mounter상에서 로봇팔은 gantry 째로 이동하며 전자 부품을 장착합니다. 이 과정에서 부품을 feeder에서 들어올리고 PCB 기판 위에 내려놓는 작업은 각각의 head가 수행합니다. 즉, 로봇팔은 feeder에 방문하면 여러 개의 head마다 1개씩의 전자 부품을 흡착한 후, PCB 위의 여러 장착점을 방문하며 부품들을 내려놓고 다시 feeder로 돌아옵니다. .

위에서 설명한 과정을 정리하자면 다음과 같습니다.

  1. 로봇팔이 feeder에서 여러개의 부품 흡착 (head마다 1개의 부품 흡착)
  2. 로봇팔이 PCB 기판 위로 이동한 후 여러 장착점을 방문하며 부품 장착
  3. Head들이 흡착한 부품들을 모두 내려놓은 후 다시 feeder를 방문하여 사용할 부품 공급

1~3의 과정을 묶어 한 cycle이라 부르며, chip mounter는 계획한 장착점에 부품을 모두 장착할 때 까지 cycle을 반복하게 됩니다. 예를들어 head가 10개인 chip mounter가 장착점이 400개인 PCB 기판을 조립하는 경우 로봇팔이 40 cycle동안 feeder와 기판 사이를 왕복하며 부품을 조립합니다.

3. Chip mount planning 문제 소개

Chip mounter와 PCB 기판 설계도만 있으면 기판을 조립할 수 있을까요? 그렇지 않습니다. 로봇팔이 cycle별로 feeder에서 부품을 흡착한 후 어떤 순서로 기판 위의 장착점을 방문하며 장착할지 계획한 mount plan이 필요합니다. Mount plan을 짜는것이 chip mount planning이며, 짧은 시간 안에 PCB 기판 조립을 마칠 수 있는 계획이 좋은 계획입니다.

Chip mount planning을 위해서는 각 cycle별로 아래의 네 가지에 대한 계획을 세워야 합니다.

  1. 각 head가 feeder에서 어떤 부품을 흡착할지?
  2. 기판 위의 어떤 장착점들을 방문할지?
  3. 방문하기로 한 장착점들을 어떤 순서로 방문할지?
  4. 방문한 장착점에 부품을 내려놓을 때 몇 번째 head를 사용할지?

다만, 이번 프로젝트에서는 문제를 단순화하기 위해 1번은 이미 정해진 값을 사용했습니다. 즉, 이후에 기술하는 chip mount planning은 모두 2~4번을 의미합니다.

Chip mount planning은 생각보다 복잡합니다. 단순히 생각하면 feeder에서 장착해야 할 부품을 집어 가장 가까운 장착점부터 장착하는 것이 가장 빠를 것 같지만, 문제가 그렇게 단순하지는 않습니다. 예를 들어, 이번 cycle에서 조금 먼 거리를 돌아가더라도 이후의 cycle에서 시간을 줄이는 선택이 당장 이번 cycle을 빠르게 끝내는 것 보다 전체 조립 시간은 더 짧을 수 있습니다. 조립 시간에 영향을 미치는 요소는 굉장히 다양하지만, 대표적인 두 가지 제약 조건만 소개하고 다음 내용으로 넘어가도록 하겠습니다.

3.1. 제약 조건 1: Head별 방문 가능 장착점

Chip mounter에서 head가 방문 가능한 장착점의 제약 조건. 파란색 장착점은 1번 head가 방문 가능한 장착점, 빨간색은 방문 불가능한 장착점이다.

Gantry는 feeder에 방문하여 부품을 흡착한 후 아직 부품이 장착되지 않은 장착점을 돌아다니며 부품을 장착합니다. 이 때 head별로 방문하여 부품을 장착할 수 있는 장착점은 여러 조건에 의해 달라지게 됩니다.

Head의 방문 가능 지점에 제약이 생기는 첫 번째 이유는 부품의 종류 입니다. 어떤 cycle에서 head가 흡착한 부품의 종류는 부품 흡착 계획에 따라 달라집니다. 같은 head라도 cycle별로 다른 부품을 흡착했을 수 있고, 같은 cycle 내에서도 각 head가 흡착한 부품의 종류가 다를 수 있습니다. 기판 위의 장착점별로 조립해야 할 부품의 종류가 정해져 있기 때문에, head가 흡착한 부품이 달라짐에 따라 head의 방문 가능 장착점 리스트는 매 cycle 달라질 수 있습니다.

둘째는 head가 물리적으로 도달할 수 있는 위치의 제약 입니다. Chip mounter의 gantry는 물리적으로 도달할 수 있는 위치의 한계가 있습니다. 이 때문에, gantry에 달려 움직이는 head 역시 물리적으로 도달 가능한 위치의 한계가 있습니다. 또한, head들이 gantry에 달려있는 위치가 조금씩 다르기 때문에 head별로 기판 위에서 도달할 수 있는 범위에 차이가 있습니다.

위 그림은 1번 head가 방문할 수 있는 장착점을 간략히 표현한 그림입니다. 이 상황에서 왼쪽 빨간색 세 개 장착점은 장착해야 할 부품이 1번 head가 흡착한 부품과 다르기 때문에 방문할 수 없고, 가장 오른쪽의 장착점은 물리적인 이동 범위 제약으로 방문할 수 없습니다. 즉, 비어있는 장착점은 총 8개 이지만 1번 head가 방문 가능한 장착점은 총 4개 입니다.

3.2. 제약 조건 2: 부품의 장착 각도

기판 설계상 장착점마다 부품을 장착해야 하는 각도가 다릅니다. 예를들어 같은 부품이라 할지라도 장착점 1에는 가로로, 장착점 2에는 30도 돌려서 장착해야 할 수 있습니다. 이렇게 부품의 장착 각도를 맞추어 장착하는 역할 역시 head가 수행합니다. Head는 부품을 내려놓기 전 내려놓으려는 장착점의 회전값에 맞추어 부품을 회전한 후 내려놓게 됩니다.

Head의 회전 동작에는 두 가지 제약이 따릅니다. 첫 번째는 head가 회전하는 중에는 부품을 내려놓을 수 없다는 점 입니다. 이 때문에 head의 회전 동작이 모두 종료된 후 기판에 내려놓는 동작을 수행할 수 있습니다. Head가 회전 중이더라도 내려놓는 동작 이외에 gantry의 움직임 등은 모두 가능합니다.

두 번째는 head가 2개씩 짝지어서 회전축을 공유한다는 점 입니다. 이번 프로젝트에서 다룬 chip mounter의 경우 10개의 head가 앞에서부터 두 개씩 같은 회전축을 공유했습니다. 즉, 1번 head가 회전하면 2번 head도 함께 회전합니다.

이러한 두 가지 제약 때문에 chip mount planning 문제가 복잡해집니다. 예를들어 어떤 cycle의 장착 순서를 계획할 때, 1번 head부터 10번 head까지 차례대로 사용하는것은 좋은 방법이 아닙니다. 1번 head를 사용한 후 3~10번 head로 부품을 장착하는 사이에 2번 head를 회전시키는게 더 시간적으로 효율적일 수 있기 때문입니다.

4. Mount Plan 평가

앞서 언급한 제약 조건들을 만족하며 짧은 시간 안에 PCB 기판 조립을 마칠수록 좋은 mount plan입니다. 즉, chip mount planning 최적화란 더 짧은 시간 안에 PCB 기판 조립을 마칠 수 있는 mount plan을 찾는 일 입니다. 이를 위해 임의의 mount plan이 주어졌을 때 조립 시간을 측정할 방법이 필요합니다.

이 프로젝트에서는 chip mounter의 움직임을 모사하는 simulator를 이용해 임의의 mount plan에 대한 조립 시간을 측정하였습니다. 사용한 simulator는 두 가지 방법으로 조립 시간 측정이 가능합니다.

  1. 전체 cycle에 대한 mount plan의 조립 시간 측정
  2. 한 cycle에 대한 mount plan의 조립 시간 측정

1번 방법을 이용하여 조립 시간을 측정할 경우 실제 chip mounter를 이용해서 조립하는 시간을 96%¹의 높은 정확도로 측정할 수 있습니다. 하지만, 1번 방법은 전체 cycle에 대한 mount plan을 모두 결정한 후에만 조립 시간을 평가할 수 있다는 단점이 있습니다. 반면, 2번 방법은 1번 방법보다 정확도가 떨어지는 대신(1번 방법 대비 94.8%의 정확도¹) 개별 cycle의 조립 시간을 독립적으로 측정할 수 있다는 장점이 있습니다.

¹ 한화 정밀기계에서 측정한 결과

이번 프로젝트에서는 1번과 2번 측정 방법을 모두 이용했습니다. 학습 과정에서는 cycle별로 강화학습 모델이 얼마나 작업을 잘 수행했는지 평가할 필요가 있어 2번 방법을 이용해 조립 시간을 측정하였습니다. 학습이 완료된 이후에는 1번 방법을 이용하여 강화학습 모델의 성능을 정확히 측정하고 기존 알고리즘과 성능을 비교하였습니다.

5. 강화학습으로 Chip Mount Planning 다루기

강화학습을 이루는 요소.

Chip mount planning 문제를 강화학습으로 풀기 위해서는 어떠한 것들이 필요할까요?

강화학습이란 agent가 주어진 state(상태)에서 더 높은 reward(보상)를 받는 action(행동)을 취할 수 있도록 학습하는 알고리즘 입니다. 학습 중 agent는 현재 주어진 상태에 대한 행동을 취하고, 행동에 대한 보상을 확인하는 과정을 반복하며 시행착오를 통해 더 나은 (더 높은 보상을 획득하는) 행동을 학습합니다. 이 과정에서 agent가 행동을 취했을 때 그 행동의 보상을 얼마인지, 그 행동으로 인해 상태는 어떻게 바뀌었는지 agent에게 다시 알려주는 부분을 환경(environment)이라고 합니다.

어떤 문제를 강화학습으로 다루기 위해서는 agent와 environment를 정의해야 합니다. 같은 문제를 풀더라도 agent, 행동, 상태, 보상을 정의하는 방법에 따라 결과물이 크게 달라집니다. 저희는 chip mount planning 문제에 대하여 이 요소들을 다음과 같이 정의했습니다.

  • Action: 한 cycle에 대한 mount plan (cycle mount plan)
  • Reward: cycle mount plan에 대한 평가 결과 (cycle mount plan 조립 시간에 음수를 취한 값)
  • State: 현재 기판의 상태
  • Agent: 현재 기판의 상태를 기반으로 다음 cycle의 mount plan을 계산하는 neural network
Chip mount planning을 수행하기 위해 강화학습 알고리즘이 동작하는 과정.

즉, 저희가 설계한 agent가 chip mount planinning 하는 과정을 도식화하자면 위 그림과 같습니다. 매 cycle, agent는 environment로부터 현재 기판의 상태(State)를 전달 받습니다. agent는 전달받은 현재 기판의 상태를 보고 현재 cycle에서 가장 효율적인 cycle mount plan(Action)을 추론합니다. Cycle mount plan에는 위 그림의 오른쪽 표 처럼 어떤 순서로 어떤 head를 이용하여 어떤 장착점에 부품을 장착해야 하는지에 대한 정보가 적혀 있습니다. 예를들어 위 그림에서 agent가 추론한 cycle mount plan은 다음과 같습니다.

[Cycle 시작]

1. 9번 head로 18번 장착점에 부품 장착
2. 7번 head로 29번 장착점에 부품 장착
3. 1번 head로 312 장착점에 부품 장착

10. 4번 head로 121번 장착점에 부품 장착

[Cycle 종료]

Environment는 agent의 cycle mount plan을 반영하여 기판의 상태를 업데이트 하고, 업데이트 된 기판의 상태는 다음 cycle에서 agent가 cycle mount plan을 추론하기 위해 사용됩니다. PCB 기판의 설계 상 계획된 장착점이 모두 채워질 때 까지 이 과정을 반복합니다. 장착점이 모두 채워 질 때 까지 수행한 cycle mount plan을 모두 이어붙이면 PCB 기판에 대한 전체 mount plan이 완성됩니다.

학습 과정에서는 agent가 추론한 cycle mount plan을 평가하여 reward를 계산하는 단계가 추가됩니다. 앞서 언급한 것 처럼, agent는 시행착오를 반복하며 environment가 전달한 reward를 높이는 방향으로 학습됩니다². Chip mount planning 문제는 짧은 시간 안에 기판의 조립을 마치는 것이 목표이기 때문에, cycle mount plan의 조립 시간이 짧을수록 agent에게 높은 reward를 부여해야 합니다. 이를 위해 Mount Plan 평가 에서 소개한 ‘한 cycle에 대한 mount plan의 조립 시간 측정’을 이용하였습니다. 매 cycle, simulator를 통해 agent가 추론한 cycle mount plan의 조립 시간을 측정한 후, 이 값에 음수를 취하여 agent에게 reward로 전달합니다.

² 정확히는 현재 시점의 action으로 인해 현재부터 미래에 받을 reward 총 합의 기댓값을 최대화 합니다.

이렇게 설계한 state와 action은 아래 그림과 같이 구현하였습니다.

Chip mount planning 문제에서 강화학습 agent에게 입력되는 값과 agent가 추론하는 action.

먼저, state에는 크게 두 가지 정보가 포합됩니다. Head별 도달 가능 정보는 이번 cycle에서 head가 흡착한 부품의 종류, 장착점 별 부품 장착 여부, head별 물리적 도달 가능 위치가 모두 고려한 정보입니다. 두 번째로 추가 정보에는 agent가 action을 결정하기 위해 필요한 추가 정보들이 포함됩니다. 이 정보에는 장착점 별 부품의 장착 각도 등의 추가 제약 조건과 부품별 장착 딜레이 등 장착 시간에 영향을 줄 수 있는 정보들이 포함됩니다.

Agent는 기판의 장착점 위치에 기반하여 정보를 처리하기 위해 CNN(Convolutional Neural Network) 구조를 사용하였습니다. 이번 모델은 강화학습의 가능성을 확인하기 위한 초기 모델이므로 단순한 batch normalization 정도만 추가된 단순한 convolution layer들을 쌓아 모델을 구현하였습니다.

이렇게 구현한 agent는 강화학습 알고리즘 중 수렴이 안정적이라고 알려진 Soft Actor-Critic을 이용하여 학습하였습니다.

6. 강화학습을 이용한 chip mount planning 결과

이번 장에서는 강화학습을 chip mount planning에 적용한 결과를 말씀드리겠습니다.

저희는 이번 프로젝트 기간동안 총 33개의 sample에 대하여 설계한 강화학습 모델을 실험했습니다. 여기서 sample이란, 하나의 chip mount planning 문제를 뜻합니다. 즉, 서로 다른 sample은 서로 다른 PCB 설계도라고 이해하시면 됩니다.

지난 3개월간의 프로젝트에서 설정한 가장 중요한 목표는 아래 질문에 대한 답을 얻는 것 입니다.

“강화학습을 이용한 chip mount planning 최적화가 가능할까?”

이 질문에 대한 답을 얻기 위해 33개의 sample에 대하여 각각 강화학습 모델을 학습시키고, 성능은 어느정도인지 측정하였습니다.

위 질문에 대해 결론부터 말하자면 ‘강화학습을 이용한 chip mount planning이 가능하다. 하지만, 해결해야 할 문제들이 있다.’ 입니다. 초기 결과로는 충분히 고무적인 결과라고 생각되며, 남아있는 문제들도 해결 가능하다고 생각됩니다.

궁극적인 목표인 실제 장비 배포를 고려해 보았을 때 sample에 대한 일반화 성능 등 여러가지 고려할 사항이 더 있습니다. 하지만 각각의 sample에 대하여도 학습이 되지 않는다면, 배포를 위해 필요한 이후의 고려사항들은 달성이 불가능하다고 생각했기 때문에 sample별로 학습하고 테스트하는 것을 첫 번째 목표로 설정하고 진행하였습니다.

아래부터 소개할 결과는 세 파트로 구성하였습니다.

  • 첫 번째 파트인 6.1. 결과 1: 전체 성능 비교 파트에서는 33개 sample에 대한 강화학습 적용 결과를 현재 현업에서 사용되고있는 chip mount planning 최적화 알고리즘의 결과와 비교합니다.
  • 두 번째 파트인 6.2. 결과 2: IPC sample 분석 파트에서는 장비 속도등의 측정에 사용되는 대표적인 sample인 IPC sample에 대한 강화학습 결과를 자세히 분석합니다.
  • 세 번째 파트인 6.3. 결과 정리 파트에서는 앞서 소개한 결과 모두 모아 보기쉽게 정리합니다.

6.1. 결과 1: 전체 성능 비교

기존 알고리즘과 강화학습 agent가 제시한 mount plan은 simulator를 통해 조립에 소요되는 시간을 측정한 후 비교했습니다. 계산한 조립 시간은 아래처럼 기존 알고리즘(Existing Algorithm Mount Time) 대비 강화학습 agent의 (RL Mount Time) 조립 시간 비율을 계산하여 비교했습니다.

즉, 이 값이 작을수록 강화학습 agent의 성능이 좋다는 의미 입니다.

33개 sample에 대하여 기존 알고리즘 대비 강화학습의 성능을 Mount Time Ratio로 나타낸 것. 세로축은 학습에 사용된 sample의 번호, 가로축은 추론 대상이 된 sample의 번호이다.

위 그래프는 33개 sample에 대한 모든 학습 결과입니다. 그래프에서 세로축은 (Training Sample Index) 강화학습 agent 학습에 사용한 sample의 번호를, 가로축은 (Inference Sample Index) 학습된 agent로 추론을 하고 성능을 측정한 sample의 번호를 나타냅니다. 예를들어 Training Sample Index가 7, Inference Sample Index가 13인 경우의 값은 아래와 같이 계산되었습니다.

  1. 7번 sample로 강화학습 agent 학습
  2. 학습된 agent를 이용해 13번 sample에 대한 mount plan 추론
  3. 13번 sample에 대한 기존 알고리즘과 강화학습 agent의 mount plan 소요 시간 계산 (simulator 이용)
  4. Mount Time Ratio 계산

즉, 위 그래프에서 Training Sample Index와 Inference Sample Index가 같은 경우는 학습한 sample 자체에 대하여 얼마나 좋은 mount plan을 추론했는지, 같지 않은 경우는 하나의 sample만 학습한 경우 다른 sample에 대한 일반화 성능은 어느정도인지 알 수 있습니다.

위 결과에서 첫번째로 주목할 점은 학습한 sample에 대하여 추론한 경우 모두 기존 알고리즘 대비 120% 시간 안에 조립을 완료했다는 것 입니다. 심지어 sample 29의 경우 기존 알고리즘보다 더 짧은 시간안에 조립을 완료하였습니다. 학습한 sample에 대하여 추론한 경우 Mount Time Ratio의 평균은 106.5% 였으며, 기존 알고리즘 대비 평균 2.95초 느리게 조립한 것을 확인할 수 있었습니다.

두 번째 주목할 결과는 학습하지 않은 sample에 대한 추론 성능입니다. 이 경우 87%에서 (1056 건의 결과 중 919건) 기존 알고리즘 대비 120% 시간 내에 조립을 완료하였습니다. 전체 1056건에 대한 평균 성능은 114.7% 였으며, 기존 알고리즘 대비 6.55초 느리게 조립한 것을 확인할 수 있었습니다.

정리하자면, 학습한 sample에 대하여 추론한 경우 기존 알고리즘에 근접한 성능을 확인하였으며, 학습하지 않은 sample에 대하여도 어느정도 일반화가 가능함을 확인했습니다. 즉, 지난 3개월의 프로젝트 기간동안 확인하려 했던 **“강화학습을 이용한 chip mount planning 최적화가 가능할까?”**라는 질문에 대하여는 그렇다고 결론낼 수 있었습니다. 앞으로는 모델을 개선하여 기존 알고리즘의 성능을 뛰어넘고, sample간의 일반화 성능을 확보하는 것이 저희에게 주어진 과제입니다.

6.2. 결과 2: IPC sample 분석

이 파트에서는 IPC sample의 결과에 대해 자세히 분석한 내용을 소개합니다.

IPC sample은 IPC 국제전자산업표준협회에서 표준화를 목적으로 만든 PCB 중 하나로 개발 초기 장비 속도 및 정도 측정을 위해 사용됩니다. (속도와 정도 측정을 위한 다른 PCB들도 있습니다.) IPC sample의 특징을 몇 가지 정리하자면 아래와 같습니다.

  • 총 400개의 장착점
  • 400개 장착점 모두 같은 종류의 부품 장착
  • 부품의 종류가 모두 같기 때문에 gantry가 feeder에서 흡착할 때 모든 head 동시 흡착
  • 장착점 별로 다양한 장착 각도

장착해야 할 부품이 한 종류이고, 모든 head가 동시 흡착을 하는 점, 또한 다양한 각도의 장착점에 장착해야 하는 점 때문에 chip mount planning 알고리즘의 성능이 조립 시간을 크게 좌우하는 sample 입니다. 이러한 이유로 chip mounter 장비의 카탈로그에 IPC sample에 대한 결과를 기입하기도 합니다.

기존 알고리즘과 강화학습이 제시한 mount plan은 head가 10개인 chip mounter를 이용해 수행한다고 가정하고 조립 시간을 측정하였습니다. 즉, 이 chip mounter는 400개의 장착점에 대하여 한 cycle에 10개씩 총 40 cycle에 걸쳐 IPC sample을 조립하게 됩니다. 아래부터 분석하는 결과는 모두 이 chip mounter를 사용한 경우 기존 알고리즘(Existing)과 IPC sample에 대하여 학습한 강화학습 agent (RL)의 결과 입니다.

분석은 크게 네 가지 관점에서 진행했습니다.

  • Mount plan 시각적 분석
  • Head 사용 순서
  • Cycle별 소요 시간
  • Cycle별 gantry 이동 거리

6.2.1. Mount Plan 시각적 분석

IPC sample에 대하여 기존 알고리즘과 강화학습 agent의 mount plan을 cycle별로 비교. 회색은 장착해야 할 장착점, 파란색은 이미 장착된 장착점, 빨간색은 현재 cycle에 장착한 장착점을 의미한다. 숫자는 현재 cycle에서 방문할 장착점들의 방문 순서를 의미한다.

첫 번째는 기존 알고리즘과 강화학습 agent가 제시한 mount plan에 대한 시각적인 분석입니다. 기존 알고리즘과(좌측) 강화학습 agent가(우측) 아래 부분부터 시작해서 위로 쌓아나간다는 점에서 유사하게 조립하는 것을 확인할 수 있었습니다. 전체 mount plan에 대한 조립 시간을 비교한 결과 Mount Time Ratio는 100.4%이며, 기존 알고리즘 대비 0.176초 느리게 조립하는 것을 확인할 수 있었습니다. 즉, IPC sample에 대하여 기존 알고리즘에 근접한 수준의 성능을 보인 것을 확인할 수 있었습니다.

6.2.2. Head 사용 순서

두 번째로 살펴볼 것은 강화학습 agent가 제시한 mount plan의 head 사용 순서입니다. 위 표의 각 행은 한 cycle을, 열은 cycle 내에서 몇 번째 step으로 수행했는지, 숫자는 몇 번 head를 사용했는지, 괄호 안의 숫자는 해당 head가 연결된 회전축의 번호가 몇번인지 나타냅니다. 예를들어 cycle 3의 step 4에서는 4번 head를 사용해서 부품을 장착했으며 이 head는 2번 회전축이 연결되어 있다고 이해하면 됩니다.

Chip mount planning 문제 소개 장의 제약조건: 부품의 장착 각도에서 설명한 것 처럼, head의 움직임에는 두 가지 제약이 따릅니다.

  1. Head가 회전하는 중에는 부품을 내려놓을 수 없음.
  2. 회전축을 공유하는 head는 함께 회전.

이러한 이유로 회전축을 공유하는 인접한 head를 연속으로 사용하는 것은 장착 시간 관점에서 좋지 않습니다.

강화학습 agent가 제시한 mount plan을 보면 회전축을 공유하는 head를 연속으로 사용한 경우가 없습니다. 즉, 학습 과정에서 시행착오를 통해 회전축을 공유하는 head를 연속으로 사용하지 않도록 학습된 것을 알 수 있습니다. 다만, cycle별로 고정된 head 순서를 사용하는 것은 신경망 구조 개선을 통해 해결이 필요합니다.

6.2.3. Cycle별 소요 시간

IPC sample에 대하여 기존 알고리즘과 강화학습 알고리즘의 cycle별 소요 시간.

세 번째는 cycle별 소요 시간³ 비교입니다. 위 그래프는 cycle별 소요 시간과 그 분포를 나타낸 그래프 입니다. 분포를 보면 cycle별 평균 소요시간은 기존 알고리즘이 0.694초, 강화학습 agent가 0.709초로 기존 알고리즘이 근소하게 빠른 것을 확인할 수 있습니다. 이는 전체 mount plan에 대한 Mount Time Ratio가 100.4%라는 것에 부합하는 결과입니다⁴.

³ Cycle별 소요 시간은 simulator의 cycle별 소요 시간 측정 기능을 사용하였습니다. 이 값은 전체 mount plan에 대하여 계산한 조립 시간보다는 정확도가 떨어집니다. 따라서, cycle별 소요 시간을 측정한 것은 비교용으로만 사용하는 것이 좋습니다.

⁴ Cycle별 소요 시간은 전체 mount plan에 대하여 측정하는게 더 정확합니다. 따라서, 실제 chip mounter를 통해 mount plan을 실행한 경우 걸리는 시간을 측정하기 위해서는 전체 mount plan에 대하여 소요 시간을 측정하는게 정확합니다.

IPC sample에 대하여 기존 알고리즘과 강화학습 알고리즘의 cycle별 소요 시간 경향.

주목할 점은 cycle에 따른 소요 시간의 추세입니다. 위 그래프는 cycle별 소요 시간 그래프를 smoothing 하여 추세를 강조한 그래프 입니다. 기존 알고리즘과 강화학습 agent 모두 cycle에 따라 소요 시간이 증가하는 추세를 보이지만, 증가폭은 강화학습 agent(19%)가 기존 알고리즘(61%)보다 3배가량 작은 것을 확인할 수 있습니다.

Cycle에 따른 소요 시간의 증가폭이 크다는 것은 알고리즘이 cycle마다 제시한 cycle mount plan이 greedy했다고 해석할 수 있습니다. 어떤 알고리즘이 greey하다는 것은 현재 상태에만 집중한다는 뜻 입니다. 즉, 기존 알고리즘은 미래 cycle에 대하여 고려하지 않고 현재 cycle의 소요 시간을 줄이는 것에 집중했다는 뜻 입니다. 반대로 강화학습 agent의 경우 미래 cycle의 mount plan까지 고려하여 현재 cycle의 mount plan을 최적화 했습니다. 이 관점에서 강화학습 알고리즘은 기존 알고리즘과 달리 전체 조립시간 관점에서 moumt plan을 최적화했다고 해석됩니다.

6.2.4. Cycle별 gantry 이동 거리

IPC sample에 대하여 기존 알고리즘과 강화학습 알고리즘의 cycle별 gantry 이동 거리.

마지막으로 살펴볼 것은 cycle별로 gantry가 이동한 거리 입니다. 위 그래프의 이동 거리는 gantry가 cycle의 첫 번째 장착점에 방문한 시점부터 마지막 장착점에 방문할 때 까지 이동한 거리를 계산하였습니다.

이동 거리는 기존 알고리즘이 354.6mm, 강화학습 agent가 332.8mm로 강화학습 agent가 더 짧게 나타났습니다. Chip mounter에서 조립 소요 시간은 gantry가 이동한 거리 외에도 많은 요소들이 상호작용하여 결정됩니다. 하지만, 총 이동 거리가 조립 소요 시간에 영향을 주는 요소임에는 분명합니다. 따라서, 강화학습 agent가 기존 알고리즘보다 더 짧은 이동 거리를 보인 것은 의미있는 결과라고 생각됩니다.

6.3. 결과 정리

마지막으로 중요한 결과를 한번 더 정리하고 결과 소개를 마무리하겠습니다.

첫 번째로 모든 sample에 대하여 기존 알고리즘과 강화학습 agent의 성능 비교 결과는 다음과 같습니다.

두 번째로 IPC sample의 결과에 대하여 상세 분석한 부분에서는 아래와 같은 인사이트를 얻을 수 있었습니다.

  • 기존 알고리즘과 유사하게 아래쪽 부품부터 위쪽 부품 순으로 조립
  • Mount Time Ratio는 100.4%로 기존 알고리즘 대비 기존 알고리즘 대비 0.176초 느리게 조립되었으나, chip mount planning에 강화학습을 적용할 수 있는 가능성 확인
  • 회전축을 공유하는 head의 연속 사용을 피하도록 학습되었지만, cycle별로 고정된 head 순서를 사용하는 것은 신경망 구조 개선을 통해 해결이 필요
  • 기존 알고리즘은 cycle별로 greedy하게 최적화하는 반면, 강화학습은 미래까지 고려한 전체 조립 시간 관점에서 mount plan을 최적화
  • 조립 시간에 큰 영향을 주는 cycle별 평균 gantry 이동거리는 기존 알고리즘보다 짧게 나타나 의미있는 결과 확인

7. 마치며

이번 글에서는 지난 3개월간 한화정밀기계와 함께 진행한 chip mounting 최적화 문제와 강화학습을 통해 얻은 초기 결과를 소개드렸습니다. 짧은 기간이지만 강화학습을 이용한 chip mount planning의 가능성을 확인할 수 있었습니다. 또한, chip mount planning을 위한 강화학습 환경을 셋업했다는 점에서도 의의가 있습니다.

현업의 chip mount planning 알고리즘을 강화학습 agent로 대체하기 위해서는 아직 해결해야 할 과제가 많습니다. Head 순서가 고정되는 문제, 아직 기존 알고리즘의 성능을 넘지 못한 점 등은 강화학습 agent의 구조를 개선 등을 통해 해결해야 할 문제입니다. 또한, 여러 sample을 동시에 학습하여 강화학습 agent의 일반화 성능을 향상시키기 위한 실험도 필요합니다. 이 과정에서 여러 종류의 sample에 대한 정규화 등을 고민해야 합니다.

실적용까지는 해결해야 할 문제가 많지만 지난 3개월간 얻은 결과는 좋은 시작점이라고 생각합니다. 앞으로 모델 을 더 개선하여 강화학습 기반의 효율적인 PCB 생산이 실현되면 좋겠습니다.

References

[1] Nawazi, Farwah. “Why SMT Is Better Than Through Hole Technology.” Circuits DIY, 16 Mar. 2022, www.circuits-diy.com/why-smt-is-better-than-through-hole-technology.

[2] Larranaga, Pedro, et al. “Genetic algorithms for the travelling salesman problem: A review of representations and operators.” Artificial intelligence review 13.2 (1999): 129–170.

[3] Kirkpatrick, Scott, C. Daniel Gelatt Jr, and Mario P. Vecchi. “Optimization by simulated annealing.” science 220.4598 (1983): 671–680.

[4] Khalil, Elias, et al. “Learning combinatorial optimization algorithms over graphs.” Advances in neural information processing systems 30 (2017).APA

🚀Career 🧭Homepage 🗣️️LinkedIn 📍Facebook 🖥️TechBlog 🎬Youtube

마키나락스는 산업용 AI 솔루션을 개발하는 스타트업입니다. 반도체, 에너지, 자동차, 화학 등의 분야에 특화된 AI 솔루션과 제조 및 산업을 위한 MLOps 플랫폼(Runwayᵀᴹ)으로 AI를 통한 산업의 지능화를 실현해갑니다. 산업 현장의 문제 해결을 통해 사람이 본연의 일에 집중할 수 있게 만드는 것, 그것이 우리가 하는 일입니다.

--

--