Loading...
2023. 6. 15. 01:19

딥마인드의 AlphaDev, 새로운 정렬 알고리즘을 발견하다

1. 서문 AlphaDev가 강화학습을 통해 설계된 더 빠른 정렬 알고리즘을 발견했다. 기본 C++ 라이브러리에서 10년만에 정렬 라이브러리에 대한 최초의 변경이며, 오픈소스화하여 전 세계 수백만명의 개발자와 기업이 클라우드 컴퓨팅 및 온라인 쇼핑에서 공급망 관리에 이르기까지 산업 전반의 AI 어플리케이션에서 이 알고리즘을 사용하고 있다 현대 정렬 알고리즘은 컴퓨터 과학자와 프로그래머가 개발하는데 수십년의 연구가 필요했다. 그것들은 매우 효율적이며, 이제는 전기를 절약하는 새로운 방법이나 보다 효율적인 수학적 접근 방식을 찾는 것과 유사하게 추가 개선을 하는 것이 주요 과제이다. 2. 어셈블리 언어에 해답이 있다 AlphaDev는 기존 알고리즘을 개선하지 않고, 처음부터 다시 시작하여 더 빠른 알고리즘을..

2022. 12. 20. 02:46

강화학습(reinforcement learning) 기본개념 익히기

1. 강화학습(reinforcement learning) 미지의 환경(environment)에서 에이전트(agent)가 임의의 행동(action)을 했을 때 받는 보상(reward)을 통해 먼 미래의 누적 보상을 최대화하고자 어떠한 행동을 할 것인지를 학습하는 알고리즘 마치 반려견을 훈련시키는 것과 유사하다. 강아지 입장에서 "앉아"라는 명령어를 들었을때, 여러 행동 중 우연히 앉았을 때 간식이라는 보상을 받게 된다. 강아지는 처음에 "앉아"를 인식하지 못한 상황에서 보상을 받았기 때문에 행동과 보상의 관계를 인지하진 못한다. 하지만 시행착오를 통해 "앉으면 간식을 받을 수 있구나"라고 학습하게 된다. 강화학습은 에이전트(agent)가 환경에서 특정 행동을 하면, 환경(environment)은 행동에 대..

2022. 10. 1. 02:26

비전공자도 이해할 수 있는 AI지식8 -알파고는 어떻게 학습했을까?-

1. 정책망(policy network), 어디에 돌을 놓아야하는가? 정책망은 사람이 만든 기보를 이용하여 학습한다. 학습에 사용한 데이터는 KGS라는 바둑 사이트에서 가져왔으며 6단 이상의 고수의 기보만 사용했다고 한다. 얼핏 생각하면 9단 기사의 데이터를 사용하면 가장 바람직하겠지만, 그러기에는 데이터의 수가 부족했다. 알파고 개발자는 데이터의 수가 충분하면서도 좋은 기보 수준을 6단으로 정했던 것이다. 각 데이터는 바둑판의 상태와 해당 상태에서 실제로 다음번 바둑알을 둔 곳의 위치를 함께 쌍으로 구성되었고 (그러니까 (바둑판의 상태,다음번에 바둑알을 둔 위치)로 데이터가 주어진다는 말인듯) 정책망은 약 16만회의 게임에서 총 3000만 수를 가져와 학습했다. 학습을 마친 정책망은 바둑판의 현재 상태..

2022. 4. 5. 23:38

MNasNet과 PROXYLESSNAS와 ONCE-FOR-ALL network 알아보기

1. MnasNet search space에 여러 후보 setting architecture를 올려두고 controller가 sampling을 통해 선택 trainer가 sample로 선택된 architecture를 가진 모델을 훈련해서 accuracy를 평가 그 다음에 mobile phone에 직접 넣어서 latency를 측정해봄 accuracy와 latency를 통하여 ‘multi-objective reward’라는 것을 계산하여 이를 바탕으로 다음 model을 선택 이전까지는 mobile phone에 넣어본 것이 아니고 그냥 감으로 좋을 것이다라고 생각하여 compression을 해왔지만 mobile phone에 사용할 거니까 당연히 mobile phone에 넣어서 실험을 해봐야 최적인 search..

2022. 3. 20. 08:55

NAS(Neural Architecture Search) 기법에 대해 알아보기

1. NAS에 대한 오해 model의 일반적인 설계 방식은 model 구조인 architecture를 설계하고 그 위에 hyperparameter를 설정하고 그 위에 데이터를 넣어 train하면서 parameter를 tuning하여 model을 완성하여 사용 이제 가장 밑단의 architecture를 어떤 것을 써야할지 고민이다. 딥러닝이 상식처럼 알려져있지만 딥러닝이 아닌 architecture도 많고 SqueezeNet, ResNet, VGGNet 등등 여러가지가 많다 architecture는 사람이 직접 손으로 만드는 방법도 있지만 automatic하게 찾아내는 방법도 있다. ResNet의 residual block은 기계가 만든 것이 아니라 사람이 창의적으로 만드는 것 Neural architec..