728x90
2020-07-25
- 지난 시간까지 IoT 분야에서 보안 관련 시나리오와 취약점 그리고 도구들로 실습을 해보았고, 최적화 알고리즘을 다루기 위한 일변수, 다변수, 컨벡스 등의 다양한 개념들을 살펴보았습니다. 오늘, 내일 중으로 기본적인 최적화 알고리즘에 대해서 간단하게 학습을 진행하고자 합니다.
- 우선 최적화란 특정 데이터가 주어질 때 원하는 값을 최적으로 구하기 위한 과정이라고 할수 있어습니다. 여기서 이런 최적의 결과를 얻기 위해 사용되는 함수를 목적 함수 혹은 비용함수라 불렀으며, 최적의 독립변수 x를 구하는 과정으로 지역 최소자 혹은 전역 최소자를 구하게 됩니다. 하지만 이 목적 함수로 구한 최소자가 전역인지 최적인지 알기 힘든 문제점이 있었습니다.
- 간단히 최적화가 무엇인지에 대해 알아보고 하강 방향에 대해 다루어 보았습니다. 하강 방향이란 다변수 함수에서 경사를 따라 내려가는 방향이라 할 수 있으며 보폭 크기 alpha만큼 하강 방향에 따라 내려가게 됩니다. 하강 방향을 따라 충분히 내려가다 보면 최대 반복 횟수에 도달하거나 이전과 현재의 오차가 설정한 기준에 도달하였는지 등 종료 조건에 따라 최적화 수행 과정이 종료되는 과정을 이해할 수 있었습니다.
- 경사 하강 방법은 이러한 하강 방향을 따라 함수 f에서 꾸준히 내려가 최소자 x를 찾는 최적화 방법이라 할수 있었습니다. 여기서 다음 위치 지점은 현재 위치 지점에 비용 함수를 최소로 만드는 값과 함수 f의 그라디언트 벡터의 곲을 뺀 것으로 다음 위치를 구하고, 이 위치에 대한 비용 함수 최소자와 그라디언트 벡터 곱의 연산을 수 차례 반복함으로서 최소 지점을 구하는 방법임을 살펴보았습니다.
- 다음으로 경사 하강법에서 보폭 크기 alpha를 결정하는 직선 탐색 알고리즘을 학습하였습니다. 하강 방향 벡터 h에 따라 하강하더라도 보폭 크기에 따라 다양한 함수 f의 결과값을 구할 수 있으나 이 직선 탐색 알고리즘을 통해 가장 아래로 내려가는 보폭 크기 alpha를 구할수 있게 됩니다. 직선 탐색 알고리즘에서 이전의 경사 하강 방법을 구하는 과정에서 더 나아가 비용 함수를 alpha에 대한 식으로 정리한 후에 이를 곡선의 방정식으로 구하면 alpha의 최소 지점을 얻을수 있게 됩니다. 이 최소 alpha가 함수 f를 가장 아래로 내려가는 보폭 크기가 되어 기본 경사 하강방법을 사용한 경우보다 더 빠르게 최소자로 내려갈수 있었으며 이 과정을 예제를 통해 정리하였습니다.
- 마지막으로 켤래 경사 방법에 대해서 살펴보았습니다. 이전의 경사 하강, 직선 탐색 방법에서 예제를 풀어본 것 까지는 달리 지금은 최적화 전반에 대해 간단히 살펴보는것을 목표로 하는 만큼 경사 하강 방법과 차이점을 살펴보았습니다. 경사 하강 법을 사용하는 경우, 레벨 집합에서는 법선 벡터와 그라디언트 벡터가 수직인 만큼 지그재그의 형태로 최소점에 수렴한다면, 켤래 경사 방법의 경우 경사 하강 방법과는 달리 타원의 형태로 부드럽게 최소점으로 수렴하는 특징을 가지고 있었습니다.
- 오늘은 최적화 알고리즘에 필요한 기본적인 개념과 하강 방향, 경사 하강, 직선 탐색 등 기초적인 최적화 알고리즘들을 살펴보았습니다. 오늘 과정을 통해 이전에 그동안 학습한 일변수 함수, 다변수 함수, 선형 대수 관련 개념들이 어떻게 조합하여 최적의 값을 구하는 과정에 사용되는지 이해할수 있었습니다. 다음 시간에는 뉴턴 방법과 라그랑주 승수법을 이용한 최적화 방법까지 처음 최적화를 다루는 만큼 다 외우려고 억지로 노력하기 보다는 간단하게 살펴보면서 최적화 이론을 마무리할 예정입니다.
300x250
'미분류' 카테고리의 다른 글
해킹 관련 커뮤니티 및 자료 (0) | 2020.07.26 |
---|---|
고유벡터와 고유값 feat. 수학은 즐거워 (0) | 2020.07.26 |
영상이해를 위한 최적화 기법 (0) | 2020.07.26 |
2020-07-22 (0) | 2020.07.25 |
2020-07-21 (0) | 2020.07.22 |