2019 ICCV는 서울에서 열렸다. ICCV computer vision 분야에서 가장 좋은 학회 중 하나로, computer vision 분야의 많은 연구자들이 ICCV에 논문을 내는 것을 목표로 한다. 이번 ICCV는 한국, 그것도 서울에서 개최되었기 때문에 비교적 쉽게 참석할 수 있는 기회를 얻게 되었다. 특히, 한국에서는 machine learning이나 computer vision, natural language processing등과 관련된 큰 학회들 (NeurIPS, ICML, ICLR, CVPR ..)이 잘 열리지 않기 때문에 이런 학회를 쉽게 접하기 어렵다. ICCV에 참석한 7일동안 적지 않은 경험을 할 수 있었다. ICCV를 통해 알게 되고 공부하고 생각한 것들을 키워드 중심으로 정리해보았다.

 

Computer Vision

사실 ICCV에 참석하기 전까지 computer vision에 대해 관심이 크지도 않았고, computer vision이라는 분야가 정확히 어떤 분야인지 진지하게 생각을 해 본 적은 없었다. Image classification이나 object recognition 정도를 주로 연구하는 분야라고만 생각하고 있었던 것 같다. 논문 몇 편, 오며가며 들은 몇 가지 연구만 가지고 computer vision이 대충 어떤 분야인지 안다고 착각하고 있었는데, 지금 와서 생각해보니 무슨 자신감으로 computer vision을 대충이라도 안다고 착각하고 있었는지 알 수가 없다. 아무튼 이번 ICCV로 인해 처음으로 진지하게 computer vision이라는 분야를 접하게 되었다.

내가 전공하고 있는 산업공학과 마찬가지로 computer vision 역시 수많은 분야들을 포함하고 있는 것 같다. 학회를 돌아다니며 접한 분야만 해도 매우 다양했지만, 분명 학회에서 무심코 지나친 분야들이나 이 학회에서 주로 다루지 않는 분야들 역시 많을 것이라고 생각한다. 학회를 통해 computer vision에서 관심을 갖고 해결하고자 하는 문제들과, 다양한 문제들을 해결하기 위한 이론/모델 들을 접할 수 있었다. 특히, computer vision은 무조건 실험만 하고 이론에는 상대적으로 관심이 많지 않을 것이라는 이상한 생각을 갖고 있었는데, 어쩌면 당연하게도 전혀 사실이 아니었다.

Computer vision 학회의 진행 방식도 내가 알고있는 학회들과 진행방식이 조금 달라서 신기했다. 보통 학술대회는 한시간에서 한시간 반 정도 되는 세션들로 구성되어 있고, 각 세션마다 4~6개 정도의 발표자가 자신의 연구에 대해 발표를 진행하는 방식으로 진행된다. 학회에 따라 조금씩 다르지만 같은 시간대에 세션이 적으면 열 개 정도에서 많은 경우 백여개가 동시에 진행되는 경우도 있다. 발표 이외에도 지정된 장소/시간에 연구를 소개하는 포스터를 붙이고 연구자가 포스터 앞에 서서 연구 내용을 설명하는 포스터 세션이 있는 학회들도 있다. 하지만 적어도 내가 경험했던 학회들은 대부분 포스터보다는 발표를 중심으로 진행되었다. 그런데 이번 ICCV는 발표 세션보다는 포스터 세션을 중심으로 구성되어 있었다. 학회 규모는 상당히 큰데 비해 발표 세션은 동시에 두 개만 진행되었으며, 발표 시간도 5분 정도로 짧았다. 보통 학회에서 하나의 발표자가 발표를 하는데 10~15분정도 시간을 할당하는 것에 비하면 매우 짧은 것이다. 대신 포스터 세션의 규모가 크고 자주 진행되었다. 궁금해서 찾아보니까 ICCV 뿐만 아니라 CVPR (Computer Vision and Pattern Recognition)ECCV(European Conference on Computer Vision)과 같은 다른 computer vision 학회들도 대부분 포스터 세션을 위주로 진행되는 것을 확인할 수 있었다. Computer vision 분야의 학회들은 대부분 이렇게 운영되는 것 같다.

포스터 세션을 중심으로 운영되다 보니 기존 경험했던 학회들과는 전혀 다른 느낌을 받았다. 발표를 위주로 진행되는 학회에서는 같은 시간대에 진행되는 다른 발표를 들을 수 없는 경우가 많은데, 포스터의 경우 그런 문제점이 발생하지 않는 점은 좋았다. 그리고 발표에 비해 논문의 저자와 의사소통하는 것도 상대적으로 쉬우며, 관심있는 연구에 좀 더 집중할 수 있다는 장점이 있는 것 같다. 하지만 가만히 앉아있으면 발표자가 청중을 이해시키려고 노력하는 발표에 비해 직접 돌아다니면서 적극적으로 연구들을 찾아봐야 한다는 점에서 편안함은 조금 떨어지는 것 같다.

 

Maximum Consensus Problem

이번 학회에서 가장 재미있게 들었던 주제는 maximum consensus problem이다. Maximum consensus problem은 데이터에 대해 linear line fitting (linear regression)을 할 때 사용할 수 있는 방법이다. 가장 일반적으로 linear line fitting을 할 때 사용하는 방법론은 least squares estimation (일반적인 linear regression에서 사용하는)이지만, least squares estimation outlier에 매우 민감하다는 특징 때문에 outlier가 많은 상황에서는 robust하지 않다는 단점을 갖고 있다. 그래서 computer vision 분야에서는 least squares estimation의 대안으로 maximum consensus estimation을 사용한다고 한다. Maximum consensus problem outlier에 민감할 수 밖에 없는 least squares estimation과 달리, outlier들을 완전히 무시해버릴 수 있기 때문에 noisy한 상황에서도 잘 작동하기 때문이다. 가장 단순한 예제로는 밤하늘 사진에서 (직선으로 움직이는) 위성의 궤적을 찾아내는 것이 있다. , partially overlap 된 두 개의 이미지 사이의 warping function을 구하는 데도 사용된다고 한다. 이외에도 3D vision, 3D object recognition, motion analysis 등 여러가지 computer vision 분야에서 사용되는 알고리즘이라고 한다.

Least squares estimation은 데이터를 설명하는 linear line (고차원에서는 plane이나 hyperplane)에 대한 residual의 제곱 합을 최소화하려고 하지만, maximum consensus problem residual이 미리 정해진 threshold보다 작은 개수를 최대화 하려고 하는 문제이다. Maximum consensus problem은 당연히 NP-hard 문제이며, 여전히 효과적으로 풀어내기 위한 다양한 최적화 방법론에 대한 연구가 진행중 인 것 같다. 학회 첫째 날, 첫 번째로 들은 tutorial (global optimization for geometric understanding with provable guarantees)에서 computer vision 분야에서 maximum consensus problem이 어떤 의미이고, 이 문제를 풀기 위해 어떤 노력들이 있었는지 설명을 들을 수 있었다. 그동안 최적화는 거의 OR의 영역이라고 착각하고 있었는데 (특히, 바로 지난 주 INFORMS에서 다양한 최적화-머신러닝 연구들을 들으면서 그런 연구는 산업공학쪽에서만 하는 것이라고 생각하고 있었는데). computer vision 분야에서도 최적화를 중요하게 생각하고, 아주 잘 한다는 것을 알게되었다.

Maximum consensus problem에 대해 알게 된 후, 가장 먼저 든 생각은 least squares estimation과 동일하게 linear fitting을 위한 방법론이라면 당연히 regression problem을 푸는데도 사용할 수 있지 않을까 하는 것이었다. 특히 outlier에 대해 robust하다는 장점이 있다면 분명 특정 상황에서 regression 문제를 푸는 데 유용하게 사용될 수 있을 것이라고 생각했는데, 내가 못 찾은 것 인지는 모르겠지만 아직까지는 maximum consensus를 이용해서 linear regression을 시도한 연구는 없는 것 같다. 정확한 이유는 모르겠지만, linear model을 주로 연구하는 쪽에서는 NP-Hard에 해당하는 문제들을 굳이 풀려고 하지 않기 때문인지도 모르겠다. 유사한 사례로는 linear regression에서 best subset selection problem이 있는데, 이 문제에 대한 실용적인 접근은 2014년도에 처음 나온 것으로 알고 있다 (best subset selection 문제 자체는 아주 오래전부터 알려져 있었지만).

아무튼 maximum consensus problem을 풀기 위해서 정말 다양한 시도들이 있었고, 대부분의 NP-Hard optimization 문제들이 그렇듯이 크게 heuristic/stochastic한 방법론과 global optimal을 찾기 위한 방법론으로 나누어 진다. 가장 유명한 heuristic algorithmRANSAC이라는 알고리즘인데, scikit-learn (linear_model 카테고리)에도 구현 되어있는 알고리즘이다. Deterministic algorithm들도 정말 다양한데, 대표적인 방법론 몇 가지를 리뷰해보면 재미있을 것 같다. 그리고, 아직까지 정확하게 computer vision에서 어떤 문제들이 어떻게 maximum consensus problem으로 formulation되는지 잘 모르는데, 어떤 문제가 어떻게 formulation되는지 알아보는 것도 필요한 것 같다.

 

Neural Architect Search

Computer vision 분야의 거의 모든 task neural network를 통해서 잘 해결되는 것 같다. Neural network에서 가장 중요한 것 중 하나는, neural networkarchitecture(구조)를 잘 설계하는 것이다. Neural architect search (NAS)라는 분야는, architecture를 사람의 손으로 디자인 하는 것이 아니라, neural network를 통해 수행하고자 하는 task와 주어진 data에 맞는 구조까지 학습을 하려는 분야이다. 예전에는 image processing 분야에서 image를 처리하기 위해서는 사람이 image에서 어떤 특징(feature)를 추출할 것인지 디자인하고, 이를 추출해내는 연산을 직접 정의해야 했다. 이런 작업을 보통 feature engineering이라고 표현한다. 그리고는 추출한 feature를 가지고 SVM과 같은 machine learning 모델을 학습해서 이미지를 분류하는 작업을 수행했다. 최근에는 feature engineering이라는 개념이 많이 사라졌는데, neural network가 데이터로부터 의미 있는 feature를 추출하도록 학습될 수 있기 때문이다. 그래서 최근에는 neural network의 구조를 디자인하고 이를 학습한다. 이것을 network engineering이라고 표현하는 것 같다. 대표적인 neural networkarchitecture로는 AlexNet, VGGNet, DenseNet 등이 있다. 그리고 NAS 분야에서는 더 나아가, neural network의 구조를 학습하는 것을 목표로 한다. 어떻게 보면 자연스러운 연구 방향인 것 같다. 기존에는 feature extraction을 디자인하다가 feature extraction을 학습하도록 변화했으니, neural network의 구조를 디자인하다가 neural network를 디자인 하는 방법론을 학습하도록 변화하는 중인 것이다.

NAS는 다양한 방면에서 연구가 진행중에 있다. 여러가지 견해가 있을 수 있겠지만, 이번 ICCV에서 본 대부분의 연구들은 neural network에서 operationwiring pattern을 어떻게 디자인해야 하는지를 중점적으로 다루고 있었다. 여기서 operationconvolution과 같은 연산을 의미하며, wiring patternlayerlayer를 어떻게 이을지를 (연산을 어떤 순서로 진행할지)를 의미한다. Operation의 중요성은 일반적인 convolution보다 grouped convolution이나 depthwise convolution이 더 효과적이라는 결과에서, wiring pattern의 중요성은 ResNet이나 DenseNet이 그 이전에 제안된 다른 구조들보다 높은 성능을 나타냈다는 결과에서 찾을 수 있다고 한다.

NAS의 가장 큰 문제점은 search space가 너무 크다는 점이다. Neural network의 구조를 결정하는 데 변경할 수 있는 요소들은 operationwiring pattern 말고도 다양하며, operationwiring pattern만 하더라도 셀 수 없이 다양한 선택지가 있다. 따라서 NAS에서는 search space를 어떻게 줄일 것인가에 대한 연구가 주로 진행되고 있는 것 같다.

이번 학회에서 본 것 중 가장 흥미로운 연구는 wiring pattern을 탐색하기 위해 random graph generation하고 이를 기반으로 wiring pattern을 만들어낸 것이다. Random graph generation한 뒤, 이를 directed acyclic graph로 변환하고, input/output node를 추가한 뒤, 이를 하나의 block (ResNetresidual block과 유사한)으로 활용하는 것이다. 이런 방식으로 디자인된 neural network는 기존 복잡한 NAS 알고리즘과 거의 유사한 성능을 낼 수 있다고 한다.

예전 연구실 세미나에서 NAS 논문을 두어 편 정도 들은 적이 있다. 그 당시 생각으로는 computing power가 너무 많이 필요하기 때문에 학계보다는 기업을 중심으로 연구될 기술로 생각했었는데, 생각보다 많은 연구자들이 NAS와 관련된 연구를 하고 있다는 점이 신기했다. 특히 computing power로 밀어붙이는 것이 아니라, 좋은 아이디어를 통해 상대적으로 적은 자원으로도 결과를 낼 수 있다는 점이 흥미로웠다. NAS와 관련된 연구를 할 능력도, 생각도 없긴 하지만 실용성도 높으면서 재미있는 요소들을 많이 가지고 있는 분야라고 생각한다. 특히 neural network의 구조는 neural network를 많이 다뤄본 사람들도 골치아파하는 문제이기 때문에 이를 자동으로 결정해줄 수 있는 알고리즘을 만들 수 있다면 가치 있는 연구가 될 수 있을 것 같다.

 

Auto Augmentation

Neural architect search가 성능을 최대한 높이기 위한 neural network의 구조를 학습하기 알고리즘이라고 한다면, auto augmentation은 성능을 최대한 높이기 위한 data augmentation policy를 학습하는 알고리즘이다. Data augmentation의 목적은 주어진 학습 데이터 셋의 다양성을 높이고 테스트 데이터 셋에 대한 다양성을 줄이는 데 있으며, image classification 알고리즘의 성능을 높이는 데 효과적이다. 가장 단순한 data augmentation의 예시는 주어진 이미지를 회전시키는 (90, 180, 270) 것이며, 다양한 형태의 data augmentation 방법론들이 있다. Auto augmentation classification 성능을 높이기 위해 다양한 augmentation 방법론들로 구성된 좋은 augmentation policy를 학습하는 것을 목표로 한다. Auto augmentation NAS와 유사하게 augmentation을 위한 controller를 두고 reinforcement learning을 기반으로 augmentation policy를 학습한다. 이렇게 학습된 augmentation controllerimage classification에서 확실하게 성능을 개선하는 데 성공했다.

학회에서는 auto augmentation 이외에도 augmentation과 관련된 다양한 아이디어들이 발표되었다. 대부분의 연구들은 auto augmentation과는 다르게 모든 것을 다 모델에 맡기지는 않고 효율적으로 높은 성능을 낼 수 있는 다양한 방법론들을 제시했다. 아무래도 auto augmentation과 같은 연구는 NAS와 비슷하게 상당한 computing power를 요구하기 때문인 것 같다.

Image classification을 위해서 data augmentation을 시도한다는 것 정도는 알고있었지만, NAS와 같이 augmentation policy를 학습하고 성능개선을 이뤄냈다는 것이 충격적이었다. Data augmentation에 대한 관심은 크지 않았는데, image classification 성능을 높이는 데 중요한 역할을 하는 것으로 봐서는 어느정도는 알아 두어야할 것 같다. Image가 아닌 다른 domain에서 augmentation을 찾아보는 것도 좋을 것 같다.

 

FLOPs (Floating-point operations)

FLOP floating-point operation의 약자로, 컴퓨터에서 실수(real numbers)와 관련된 연산 (사칙연산을 포함한)을 뜻한다. 컴퓨터는 기본적으로 연산장치이기 때문에 다양한 연산을 할 수 있는데, 그런 연산들 중 하나를 의미한다. 머신러닝 분야에서는 실수의 연산 (정확히는 실수로 구성된 행렬의 연산)이 매우 중요하기 때문에, FLOP은 머신러닝에서 모델을 학습시키는데 필요한 연산의 횟수를 정량적으로 나타낼 수 있는 단위가 된다. NAS 논문들을 보면 600M FLOP과 같은 표현들이 등장하는데, 이는 모델을 학습시키는데 600,000,000,000 (6)번의 부동소수점 연산을 사용했다는 의미가 된다.

FLOP의 좋은 점은 학습된 neural network들을 fair하게 비교할 수 있다는 것이라고 생각한다. 기존에는 neural network의 복잡도 또는 용량을 표현할 때 레이어의 개수, 파라미터의 개수와 같은 지표를 사용했었다. 하지만 이는 neural network 구조의 복잡도를 의미하며, 얼마나 많은 데이터를 이용해서 학습을 시키는지, 얼마나 많은 epoch를 돌려서 학습을 시키는지 대한 정보는 포함하지 않고 있다. 게다가 최근 많은 모델들은 파라미터의 개수와 연산의 횟수가 정확하게 비례하지 않는다. Neural network에서 같은 개수의 파라미터를 가지는 dense layerconvolutional layer를 비교했을 때, 일반적으로 convolutional layer의 연산량이 더 많다. Convolutional layer에서는 (filter shape input shape에 따라 조금씩 다르겠지만) 일반적으로 filter가 여러 번 재사용되기 때문이다. Recurrent layer의 경우도 같은 파라미터를 여러 번 재사용한다는 점에서 비슷하다. 그리고 파라미터의 개수는 모델을 학습시키는데 어느 정도의 데이터를 사용했는지, 몇 번의 epoch를 수행했는지, 어떤 optimizer를 사용했는지에 대한 정보도 포함하고 있지 않다. 실제로 데이터의 개수, epoch, optimizer의 종류에 따라 같은 구조의 neural network라도 성능이 다르다는 점을 생각해보면, 모델 간 fair한 비교를 할 때 고려해야할 필요가 있다. 드물게는 모델 학습에 필요한 시간 또는 예측에 필요한 시간 등을 지표로 사용하는 경우도 봤는데, 이는 코드의 implementation이나 연산장치의 성능 등에 따라 차이가 많이 날 수 있으므로 객관적인 비교 지표가 되기 어렵다.

FLOP은 적어도 앞서 언급한 내용들은 모두 반영할 수 있는 지표이다. 파라미터 개수가 많거나 재사용 횟수가 많으면 연산량이 늘어나고, 데이터가 많거나 epoch가 많아서, 또는 optimizer의 계산량이 많은 경우에도 연산량이 늘어난다. 그리고 연산장치의 성능과는 아무런 관련이 없다. 그런 의미에서 적어도 지금까지 봤던 다른 지표들 보다는 fair한 비교를 하고있다고 볼 수 있는 것 같다.

FLOPs를 통해서 neural network NAS를 더 객관적인 방법으로 비교하고 평가하는 것을 보면 machine learning이나 neural network 연구가 정말 많은 영역에 걸쳐 있다는 생각이 든다. 이제는 분야들이 세분화되고 예전보다도 더 전문적으로 변해서 알고리즘이나 방법론이 아닌, 실험 결과를 해석하기 위해서도 예전보다 더 많은 배경지식이 필요한 상황이 된 것 같다. 새로운 것들을 받아들일 수 있게 꾸준히 노력해야겠다.

 

Explainable AI (XAI)

Explainable AI machine learning이나 artificial intelligence와 관련된 거의 모든 분야에서 요즘 가장 뜨거운 주제 중 하나이다. ICCV 직전에 다녀온 INFORMS에서도 explainable model이나 interpretable model에 대한 연구들이 상당히 많았던 기억이 있다. Computer vision 분야에서도 중요하게 생각하고 있는 주제 중 하나이고, computer vision neural network가 주축이다 보니 neural network output을 만들어낼 때 어떻게 작동하는지를 조사하는 연구들이 많았다. Neural network가 많은 task에서 좋은 성능을 내고 있지만 기본적으로 black box algorithm이기 때문에 neural network가 어떤 방식으로 작동하는지, 특히 input의 어떤 부분을 보고 output을 생성하는지를 알아내기 위한 연구가 상당히 활발하게 진행되고 있다.

그간 다양한 연구들이 진행되어 왔는데, 지금 기억에 남는 방식은 input 값에 변화를 주면서 input값들 중 중요한 부분을 찾는 perturbation-based methods, loss function에 대한 gradient를 기반으로 input에서 중요한 부분을 찾아내는 gradient-based localization (CAM/gradCAM), Taylor expansion을 이용한 방법론, layerwise relevance propagation 등이다. 가장 보편적으로 사용되는 방식은 gradient-based localization 인 것 같은데, 아직 정확한 컨셉을 이해하고 있지 못해서 이와 관련된 연구를 여러가지 봤지만 제대로 이해하지 못했다. Neural networkexplainability에 많은 관심을 갖고 있기 때문에 gradient-based localization 방법론들에 대해 차근차근 공부해보고 이번 학회에서 봤던 연구들을 다시 확인해봐야 할 것 같다.

이와 관련해서 기억에 남는 연구 중 하나는, k-means clustering이나 one-class svm과 같은 알고리즘을 해석하기 위해서 이 알고리즘들을 neural network로 재설계하고 (neutralize 한다고 표현했다) 학습시킨 뒤, 이를 layerwise relevance propagation을 통해 해석하는 방법론을 제안한 것이다. 여러가지 면에서 신기했는데, 굳이 shallow한 알고리즘을 해석하기 위해 neural network로 변환했다는 점도 신기했고, neural network로 생각보다 쉽게 변환할 수 있다는 점도 신기했다. 자세한 내용들은 발표를 통해 확인할 수 없었지만, 지금 진행중이 연구와도 어느정도 관련이 있기 때문에 시간을 내서 더 자세한 내용들을 봐야할 것 같다.

이전까지는 explainable AI에 대해 굉장히 뜬구름 잡는 키워드 뿐인 분야라고 생각하고 있었는데, 이미 많은 진전이 있었고 어느정도 실용적인 결과를 내고 있다는 것을 알게 되었다. 많은 산업 분야에서 다양한 이유로 인해 explainable AI, 특히 neural networkexplainability를 요구하고 있기 때문에 알아두면 여러모로 유용하게 쓸 수 있을 것 같다.

 

Generative Adversarial Networks

Computer vision 분야에서 GAN에 대한 연구도 여전히 활발하게 진행되고 있는 것 같다. 예전에는 구조나 loss function GAN의 여러가지 요소들을 수정해서 고해상도 / 고품질 이미지를 생성하는 것을 목표로 하는 연구가 많았는데, 최근에는 GAN을 이용해서 정말 다양한 연구를 하는 것 같다. GAN을 이용한 neural architecture search, continual learning, object detection, deblurring 등 여러가지 연구들이 있었지만, 가장 기억에 남는 주제는 single imageGAN을 적용한 연구들이었다. 이번 ICCVbest paper이기도 한 SinGAN(Single Image GAN)source image 한 장에 GAN을 학습시켜 imagepatch들의 internal distribution을 학습하고, 이를 기반으로 source image와 유사한 이미지들을 생성해내는 모델이다. 잘 학습된 SinGAN은 이미지의 특성을 그대로 유지한 채 유사한 이미지들을 생성해 낼 수 있으며, 다양한 image manipulation task에 사용할 수 있다. SinGAN이 생성해내는 이미지는 굉장히 신기하기 때문에 한번쯤 시간을 내서 결과물을 확인해 볼 필요가 있는 것 같다. 비슷한 연구로는 InGAN(Internal GAN)이 있었다. InGAN 역시 SinGAN과 마찬가지로 single image patch들을 학습하여 유사하지만 디테일이 다른 이미지를 생성해낸다. 결과물이 재미있긴 하지만, 아직 두 연구 모두 논문을 자세히 읽어보지 않아서 computer vision 분야에서 어떤 의미를 갖는 연구 인지에 대해서는 잘 알지 못하는데, 시간을 내서 자세히 읽어 볼 필요가 있는 것 같다.

 


이외에도 continual learning이나 knowledge distillation, multi-task learning, zero-shot learning과 관련된 재미있는 연구들이 여러가지 있었으며, convolution 연산이나 pooling에 대한 새로운 접근을 시도한 연구들도 다수 눈에 띄었다. 학회장에서 하나하나 볼 때는 나중에 다시 자세히 봐야겠다고 생각한 연구들도 꽤 많았는데, 시간이 지나고 나서 다시 보려고 하니 그 때 어떤 생각으로 관심을 가졌었는지 잘 기억이 나지 않는다. 학회 중간중간에 그런 생각들을 잘 정리해두어야 나중에 공부할 때나 연구를 할 때 좀 더 의미 있게 그런 아이디어들을 활용할 수 있을 것 같다.

이번 ICCV를 통해서 computer vision에 대해 잘 모르고 있다는 것을 확실하게 알게 되었으며, 구체적으로 어떤 세부 분야들이 있고, 그 중에서 어떤 것들이 지금까지 공부하거나 연구해온 것들과 유사한지 더 자세히 알 수 있는 기회가 되었다. 그리고 INFORMS에 이어서 좋은 연구들을 많이 접하면서 여러가지 아이디어들도 얻을 수 있었고, 연구를 더 열심히 해야겠다는 동기부여도 되었다.