728x90

2020-07-27

  • 지난 시간에는 고유치와 고유 벡터에 대해서 간단히 복습 후 뉴턴 방법과 비선형 시스템에서의 해를 구하기 위한 비선형 최소 자승법에 대해서 살펴보고 여기서 근사해를 구하기 위한 가우스 뉴턴 방법과 레벤버그-마퀴트 방법에 대해서 살펴보면서 최적화 이론 학습을 마무리 할수 있었습니다.
  • 이번 시간에는 그동안 학습한 공업 수학 이론과 최적화 이론, 수치 해석 등의 내용들을 활용하는 응용 분야중 하나인 영상처리에 대해서 학습을 시작하였습니다. 이전에 영상처리를 공부할때에는 이런 수학적 배경지식이 없이 학습을 진행하다보니 영상에는 어떤 종류가 있고, 관련 연산이 어떤게 있는지 정도만 파악하고 실제 내부 동작 과정에 대한 이해도가 많이 부족했었으나 이전 보다는 조금 더 깊이 들어갈수 있었습니다.
  • 가장 처음으로는 컴퓨터 비전의 개요에 대해서 살펴보았습니다. 컴퓨터 비전이 무엇인지와 응용분야 그리고 처리과정에 대해서 정리하고, 이러한 컴퓨터 비전을 다루기 위한 배경 지식들이 어떤것들을 있는지 파악하였습니다. 또 컴퓨터 비전 어플리케이션을 구현하기 위한 설계과정 즉, 문제 파악, 자료 수집, 알고리즘 설계와 구현, 성능 평가 등 전반적인 내용과 컴퓨터 비전과 영상 처리, 컴퓨터 그래픽스 등 관련 응용분야와의 관계를 살펴볼수 있었습니다. 지난 시간에 학습할때에는 급한 마음에 개요를 학습할 여유가 없었지만 개요를 이해하고 시작하면서 어느 부분에 주의를 해야할지 어느정도 파악하게 되었습니다.
  • 다음으로 히스토그램과 이진 영상에 대해서 학습하였습니다. 앞으로 다룰 영상은 컬러영상도 있지만 흑백인 명암영상 그리고, 0과 1로만 이루어진 이진 영상등이 있었습니다. 여기서 히스토그램이란 명암 영상에서 명암 정도를 2차원 그래프 상으로 나타낸 것이라 할수 있는데, 이후 특징 기술자나 히스토그램 역투영을 통한 특정 색상 영역 검출 등에 활용되는것들을 살펴보았습니다. 또 이진 영상은 임계치를 이용하여 이진화를 통해 얻을수 있었는대 최적의 임계치를 찾는 오츄 알고리즘이 대표적이었습니다.
  • 이후 이러한 다양한 영상들을 처리하기 위해 어떠한 연산들이 있는지 파악하였습니다. 영상을 구성하는 점 하나하나에 대한 점연산과 커널(마스크)를 이용하여 일부 영역에 대해서 수행하는 영역 연산, 그리고 영상 전체적인 형태가 바뀌는 기하학적 연산이 있었으며, 특히 이러한 기하학적인 연산에 어떤 변환들이 존재하는지 정리하는 시간을 가졌습니다.
  • 마지막으로 영상 연산에서 사용되는 연결 요소에 대해서 간단하게 살펴보았습니다. 연결 요소는 대표적으로 상하좌우를 다루는 4연결성과 대각선영엮가지 다루는 8연결 성이 있었습니다. 당연히 4연결성을 사용하는것이 계산량을 줄일수 있는 장점이 있으나 대각선에 대한영향을 반영하지 못하는 문제가 있었습니다. 이러한 연결 요소를 이용하여 범람 채움 알고리즘을 통해 영상 일부분을 채워나가는 과정을 알아보고 또한 번호판 검출 알고리즘에 사용되는 모폴로지 연산에 대해서 학습하였습니다. 모폴로지는 특정 마스크를 이용해 이진 영상을 팽창시키거나 침식시킬수 있었는데 잡음을 제거하거나 특정한 형태를 얻는대 유용함이 있었습니다.
  • 오늘은 영상처리 관련 개념들을 위주로 전반적으로 간략히 살펴보았습니다. 영상 인식까지 가기위해서 살펴보아야할 내용들은 많으나, 한번에 완벽히 이해하기 보다는 지난번 보다 조금이라도 더 이해하기 위해 편하게 보고자 합니다. 다음 시간부터는 컴퓨터 해킹과 관련된 개념들과 바이너리 에디터로 부팅가능한 이미지를 만드는 과정에 대해서도 학습할 예정입니다.
300x250

'미분류' 카테고리의 다른 글

2020-07-29  (0) 2020.07.30
2020-07-28  (0) 2020.07.30
2020-07-26  (0) 2020.07.26
해킹 관련 커뮤니티 및 자료  (0) 2020.07.26
고유벡터와 고유값 feat. 수학은 즐거워  (0) 2020.07.26
728x90

2020-07-26

  • 지난 시간에는 최적화 기본 개념부터 경사 하강, 직선 탐색, 켤래 경사 방법까지 기초적인 최적화 알고리즘들을 넓게 훑어보고 간단한 예제를 통해 하강 방향으로 일정한 보폭 크기 혹은 직선 탐색으로 구한 보폭 크기로 최소자에 수렴하는 과정을 살펴보았습니다. 이후 켤래 경사 방법부터는 처음 최적화에 대해서 공부하는 만큼 자세하게 다루기는 시간도 부족하고 어렵기 때문에 가능한 얕게 살펴보았으며, 기본적인 경사 하강 방법과 켤래 경사 방법의 차이를 비교하면서 어제 학습을 마무리 하였습니다.오늘은 뉴턴 방법부터 라그랑주 승수법을 이용한 최적화 알고리즘 전반에 대해서 간단히 살펴볼 것이고 이에 앞서 고유치 고유벡터에 잠시 살펴본 후, 마지막으로 앞으로 어떻게 학습해 나갈지 정리하였습니다.
  • 우선 선형대수, 최적화, 영상 처리, 인공 지능 등의 수많은 학문들을 공부할 때마다 고유치와 고유벡터라는 개념에 대해서 잠깐잠깐 보곤 했었습니다. 하지만 이 개념에 대한 정의는 알고 있지만 의미와 어떻게 활용되는지 까지는 그다지 깊이있게 학습하지 않았고 또 잊고 있었습니다. 그래서 이번 시간에 잠시 고유치와 고유벡터에 대해 간단히 살펴보았습니다. 특히나 이 개념들은 영상 처리에서 자주 사용되며, 여기서 말하는 고유라는 단어는 독일어로 영어로 바꾸면 특성이라는 말로 바꿀수 있다고 합니다. 그래서 고유치와 고유행렬은 주어진 행렬 A의 특성을 나타내는 수라고 할수 있으며, 영상 처리 분야에서 고유 벡터는 영상이 변환되어도 변하지 않는 방향, 그리고 고유 치는 영상의 크기의 배수 혹은 반대를 나타내는 수라고 합니다. 이렇게 복습함으로서 이전에도 조금씩 조금씩 보았던 내용이지만 조금 더 확실히 정리 할 수 있었습니다.
  • 뉴턴 방법은 경사 하강과 별개의 최적화 알고리즘으로 경사 하강 방법이 보폭 크기에 따라 최소자까지 여러번 반복하여 수렴한다면, 뉴턴 방법은 태일러 급수를 2차까지 전개한 식을 뉴턴 함수 L(h)로 하여, 변수 h를 최소로 만들어야 합니다. 여기서 h가 뉴턴 방법의 해라고 할수 있겠습니다. 이 방법에서는 그라디언트 벡터로 양의 확정 행렬 Hf(x, y)를 구하고, 이와 다른 값들을 조합하여 뉴턴 방법의 해인 h를 구하게 됩니다. 여기서 구한 h로 여러차례 반복 없이 한번에 최소자로 이동하게 되며, 경사하강법과의 차이라고 할수 있겠습니다.
  • 레벤버그 마쿼트 감쇄 뉴턴 방법은 LM 방법이라고 부르며, 기존의 뉴턴 방법에 감쇄 인자 mu를 추가시킨 방법입니다. 여기서 감쇄 인자는 이득 비율에 따라 커지거나 줄여 최소자에 멀면 mu은 줄어 빠르게 수렴하고, 최소자에 가까워지면 감쇄 인자 mu가 커지게 됩니다. LM 뉴턴 방법의 식 유도 과정과 의사 코드를 통해 어떻게 최적화 알고리즘이 감쇄 속도를 조절하면서 초소자에 수렴해나가는지 이해할 수 있었습니다. 또한 이러한 LM 뉴턴 방법에서 매 반복마다 헤시안 행렬이 계산되는 문제가 있어 여기서 근사화된 양의 확정행렬 B를 이용하는 쿼시 뉴턴 방법에 대해서 간단하게 살펴보았습니다.
  • 이전까지는 f:R^n -> R인 경우를 다루었으나 f:R^n -> R^m인 비선형 시스템에서 최적화를 수행하기 위한 대표적인 방법인 비선형 최소 자승법에 대해서 알아보면서, 왜 제곱을 사용하는지와 근사해를 구하기 위한 식을 정리하고, 여기서 근사해 최소자를 구하기 위해 경사 하강법이나 뉴턴 방법이 사용되는것을 알수 있었습니다.
  • 이러한 비선형 최소 자승법의 최소자를 구하기 위한 대표적인 방법으로 LM 방법이 있었는데, 이에 앞서 LM방법의 기반이 되는 가우스 뉴턴 방법에 대해서 살펴보았습니다. 가우스 뉴턴 방법은 함수 f를 2차 태일러 전개를 수행하고 이에 대한 근사식을 구하였는데 결과적으로 L(h)가 최소로 만드는 가우스 뉴턴 해 h_gn를 구하는 방법이고, 이 과정을 간단하게 정리하였습니다. 다음으로 LM 방법에 대해서 살펴보았는데, 이 방법은 가우스 뉴턴 방법에 이전에 봤던 데로 감쇄 인자 mu를 추가한 것이라 할수 있었습니다. 감쇄 인자의 크기에 따라 레벤버그 마퀴트 해 h_lm의 변화와 이득 비율 rho를 구하는 과정 그리고, 반복 정지 조건 eta값이 어떻게 정의 되는지 등을 살펴보면서 LM 방법 전반에 대해서 살펴보았습니다.
  • 이번 시간에는 다양한 최적화 알고리즘들을 살펴보면서 세세한 증명과정까지는 아니지만 선형 시스템, 비선형 시스템에서 사용가능한 각 최적화 기법들의 특징들과 식 유도 과정을 간단하게 살펴보았습니다. 이 과정에서 중간 중간에 이전에 영상 처리나 패턴 인식을 할때 잠깐 봤던 개념들을 이제서야 이해할수 있었습니다. 당시에는 공업수학이나 최적화에 대한 이해도가 전혀 없었기 때문에 무슨말인지 알수 없었지만 이렇게 최적화에 대해서 알아 본 다음 다시 시도해보면 훨신 수월하게 공부할수 있을것 같습니다. 다음 시간부터는 영상 처리를 다시 복습해볼 예정입니다.
300x250

'미분류' 카테고리의 다른 글

2020-07-28  (0) 2020.07.30
2020-07-27  (0) 2020.07.30
해킹 관련 커뮤니티 및 자료  (0) 2020.07.26
고유벡터와 고유값 feat. 수학은 즐거워  (0) 2020.07.26
2020-07-25  (0) 2020.07.26
728x90

이전에 헥스 덤프가 무엇인지 잘 몰라 검색하다 보니

 

해커 스쿨이란 사이트를 찾은 적이 있다.

 

보안 분야로 제대로 배우지 않다 보니

 

국내 어떤 커뮤니티가 있는지는 잘 모르겠지만 상당히 큰편인것 같더라

 

 

 

특히 컴퓨터를 처음 배우는 사람들에게

 

제공되는 만화는 정말 좋더라

 

유치원-초등학교-중-고-대-연구소 순으로 되어있는데

 

만화는 중,고 까지밖에 없지만

 

컴퓨터를 처음 공부하는 사람들에게는 재미있게 보는데는 좋을 듯 하더라

 

https://www.hackerschool.org/Sub_Html/HS_Community/index.html

해커스쿨 커뮤니티 주소

 

 

 

 

이와 별개로

 

멍멍님이 하드웨어 해킹 강의 자료 모음을 올려놓으신게 있더라

 

RF 해킹, 스마트폰 해킹, 자동차 해킹, 하드웨어 해킹

 

되게 재미있어 보이는건 많다

 

링크만 올려 놓겠다.

 

https://www.hackerschool.org/HardwareHacking/

 

 

개인 적으로 위 링크에 있는 자료중에

 

[0과 1로 이루어진 컴퓨터의 세계] 강의 자료가

 

컴퓨터에 대해서 베이스가 부족한 사람들에게 설명을 잘 해놓은것 같더라

 

개인적으로 이 자료와 맨 아래에 학습 로드맵을 한번 따라해보면 좋을것 같다.

 

 

 

나도 기회가 된다면 멍멍님의 자료를 한번 실습해보면 좋겠다.

 

300x250

'미분류' 카테고리의 다른 글

2020-07-27  (0) 2020.07.30
2020-07-26  (0) 2020.07.26
고유벡터와 고유값 feat. 수학은 즐거워  (0) 2020.07.26
2020-07-25  (0) 2020.07.26
영상이해를 위한 최적화 기법  (0) 2020.07.26
728x90

최적화든 영상이든, 선형대수를 볼때마다

 

항상 만나는 개념이 고유벡터와 고유값이 있다.

 

 

 

 

분명 이 개념의 공식은 알고 있지만

 

이게 무엇을 의미하는지는 너무 막연하더라

 

이전에도 살펴본 적이 있었는데

 

그냥 보고 말아서인지 또 잊어버렸다.

 

 

 

 

 

 

그래서 잠시 검색해보다가 찾은 내용이

 

수학은 즐거와 math is fun 사이트에서

 

고유벡터와 고유 값에 대해서 정리한 내용이 있길래 가져와 봤다.

 

https://www.mathsisfun.com/algebra/eigenvalue.html

 

 

 

 

고유벡터 예시

 

고유벡터와 고유값은 많이 사용되기는 하는데 가장 간단한 예로

 

다음의 변환을 보면 고유 벡터는 방향이 바뀌지 않는걸 볼수 있다.

 

 

 

 

고유치와 고유벡터 정의

 

 A라는 제곱 행렬이 주어질때 고유 벡터와 고유 값은 다음의 식을 따르는 값이라 할수 있다.

 

 

이걸 왜 구할까?

 

 이 개념은 컴퓨터 그래픽에서 많이 사용되는데

 

고유 벡터는  행렬을 변환해도 바뀌지 않는 방향을 가리킵니다.

 

고유 값이 아래에 해당하는 경우 각각의 특징을 갖는다.

 - 1 일때 : 변화 없음

 - 2 일때 : 길이가 2배

 - -1 일떄 : 고유 값 방향으로 반대가 된다.

 

 

 

고유 eigen란?

 

eigen은 독일어로 고유의 own, 특징의 typical이란 뜻을 가지고 있습니다.

 

그래서 영어 단어로 말하자면 특성 characteristic이 되며, 고유 벡터를

 

특성 벡터 charateristic vector라고도 부를수 있겠습니다.

 

 

 

https://medium.com/sho-jp/linear-algebra-part-6-eigenvalues-and-eigenvectors-35365dc4365a

 

 

 

300x250

'미분류' 카테고리의 다른 글

2020-07-26  (0) 2020.07.26
해킹 관련 커뮤니티 및 자료  (0) 2020.07.26
2020-07-25  (0) 2020.07.26
영상이해를 위한 최적화 기법  (0) 2020.07.26
2020-07-22  (0) 2020.07.25
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
728x90

https://www.edwith.org/optimization2017

 

 

나중에 시간날때 봐야지

300x250

'미분류' 카테고리의 다른 글

고유벡터와 고유값 feat. 수학은 즐거워  (0) 2020.07.26
2020-07-25  (0) 2020.07.26
2020-07-22  (0) 2020.07.25
2020-07-21  (0) 2020.07.22
2020-07-20  (0) 2020.07.21
728x90

2020-07-22

  • 지난 시간에는 최적화 이론에 사용되는 벡터 함수의 다양한 미분들에 대해서 간단히 정리하고, 오픈소스 하드웨어 플랫폼을 이용한 AI 스피커를 살펴보면서 IoT 장비들의 펌웨어 구조와 인터페이스 등을 살펴보았습니다. 이 과정에서 장치들의 스팩과 사용 방법들을 알 수 있는 데이터 시트를 찾는 방법과 보는 방법에 대해서 배우고, 소스 코드나 통신 그리고 서비스 등에서 보안 취약점을 찾을수 있는 다양한 취약점 진단 도구들을 살펴보았습니다. 이번 시간에는 최적화 알고리즘들을 본격적으로 학습하기에 앞서 레벨 집합과 컨벡스 함수, 어떤 최적화 알고리즘들이 있는지 간단하게 살펴보고 통신 프로토콜과 취약점 실습 등으로 보안 학습을 마무리 하겠습니다.
  • 우선 최적화에 대해서 학습하면서 그 동안 다변수 함수들을 이용하면서 이변수 함수인 경우 평면, 삼변수 함수인 경우 공간에 대한 결과가 나오게 되었습니다. 삼변수 함수인 경우 z축에 대해 특정 값에 해당하는 (x, y) 집합들이 존재하게 되는데 이를 등고선(레벨)이라 하게되며, 여러 z축 값에 대한 등고선들의 집합을 레벨 집합이라 부릅니다. 이 레벨집합(등고선 모임)에서 가장 기울기가 큰 방향으로 경사하강하여 적절한 최소지점을 찾게 된다고 합니다. 여기서 나오는 등고선에 속하는 직선 집합을 구하는 함수가 컨벡스 함수이고, 이러한 레벨 집합과 컨벡스 함수등이 최적화 알고리즘에 적용 됩니다. 다음 시간에는 경사 하강법, 직선 탐색, 뉴턴 방법 등 최적화 알고리즘을 제대로 학습할 예정입니다.
  • 최적화 이론을 잠깐 살펴보고, 취약점 분석에 사용되는 다양한 도구들을 사용해보았습니다. 첫 번째로 펌웨어 이미지를 추출하는 FMK로 실제 배포중인 공유기의 펌웨어로부터 실제 데이터를 추출하여 공유기 설정 페이지 등 내부 데이터들을 확인할 수 있었으며, 이 내부 데이터를 수정 후 다시 빌드함으로서 배포중인 펌웨어를 고쳐보았고, NMAP을 이용하여 특정 웹서비스가 동작하는 장치에서 어떤 포트들이 동작하는지 확인할 수 있었습니다. 이 외에도 Yasca를 이용하여 웹 해킹 실습을 위한 오픈소스인 Webgoat 소스의 취약점들을 분석하여 하드코딩된 비밀번호의 존재 여부 등 다양한 취약점 결과가 나온느것을 확인하였습니다.
  • 다양한 취약점 분석 도구를 사용해봄과 동시에 IoT에서 주로 사용되는 통신 방식인 WiFi, 지그비, 블루투스, RF 등의 통신 방식과 메시지 전송 프로토콜 MQTT를 살펴보면서, 이들의 특징과 취약점들을 살펴보았습니다.
  • 이 외에도 안드로이드 취약점 분석 과정에서 암호화 되지 않은 안드로이드 패키지 파일 apk에서 소스 레벨의 내용들을 둘러보거나, MQTT 리스너를 통해 온습도 센서의 값들을 안드로이드 상에서 확인할 수 있었습니다.
  • 마지막으로 사용자 정의 라디오 신호 SDF의 개념을 살펴보면서 대표적인 SDF 장비인 HackRF를 이용하여 리모컨으로 프로젝터 스크린의 올리고 내리는 신호를 스니핑하여, 리모컨을 동작시키지 않는 중간에도 HackRF를 통해 동일한 신호를 송신하여 프로젝터 스크린 제어 시연을 보면서 이번 IOT 보안 학습을 마무리 하였습니다.
300x250

'미분류' 카테고리의 다른 글

2020-07-25  (0) 2020.07.26
영상이해를 위한 최적화 기법  (0) 2020.07.26
2020-07-21  (0) 2020.07.22
2020-07-20  (0) 2020.07.21
2020-07-17  (0) 2020.07.19
728x90

구글 상무 미키김의 세바시 영상

 

역사학과 출신 사회초년생이

 

구글에서 일하기 까지 과정을 설명하고 계신다.

 

당연한 이야기들이지만 가장 하기 힘든 일인듯 하다.

 

 

 

 

 

 

 

 

 

 

 

 

2020-07-21

  • 지난 시간 IoT 보안 관련 내용을 학습 시작하면서 스마트 홈에서 발생하는 보안 사고들과 AI 스피커에 대한 공격 사례 그리고 어떻게 스마트홈이 구성되는지 살펴보았습니다. 이 외에 최적화 이론을 다루는데 필요한 일변수/다변수 함수에 대해서 간단하게 내용 정리를 마쳤습니다. 이번 시간에는 오픈소스 하드웨어를 활용한 AI 스피커를 활용해보고, 펌웨어와 인터페이스에 대해 그리고 데이터 시트를 보는 방법과 다양한 취약점 진단 도구들에 대해 알아봄과 동시에 실습을 진행하겠습니다. 마지막으로 최적화 이론에서 다 정리하지 못한 다양한 벡터 미분들 정리하겠습니다.
  • 우선 이번에 활용해본 오픈소스 하드웨어 AI 스피커로 KT의 메이커 키트를 활용한 기가지니를 사용하였습니다. 이 키트는 라즈베리 파이를 중심으로 스피커와 마이크를 포함하여, API를 통해 기가지니 서비스를 활용할 수가 있었습니다.
  • 그래서 이러한 AI 스피커와 같이 IoT 장비에서 사용하는 펌웨어와 인터페이스에 대하여 간단하게 살펴보았는데 이 때 펌웨어를 사용하는 목적과 구성 요소에 대해서 정리하고, 여기서 사용되는 JTAG과 UART와 같은 인터페이스 방식에 대해서 학습 할수 있었습니다.
  • 펌웨어와 인터페이스를 살펴보는 중간에 IoT 시스템의 다양한 취약점들을 잠시 보고 지나갔었는데, IoT에서 취약점을 하드웨어와 통신, 센서, 모바일 어플리케이션 측면에서 4가지로 분류하였고 각 분류 마다 분석 깊이에 따라 확인해야할 취약점들이 어떤것들이 있는지 이해할수 있었습니다. 예를 들어 통신 취약점의 경우에는 보호되지 않는 통신 -> 입력갑 조작 -> SSL 통신 취약점 등이 있었습니다.
  • 다음으로 데이터 시트 확인하는 방법을 살펴보았습니다. IoT 장비들은 다양한 개발 보드와 센서로 이루어져 있으며 이를 활용하기 위해서 데이터 시트 확인 방법의 이해가 필요하였습니다. 이전에 가장 대표적인 하드웨어 보드인 라즈베리 파이와 Atmega128 데이터 시트를 살펴본 적이 있었기 때문에 이번 시간에는 이전보다 조금 수월하게 이해할수 있었습니다.
  • 데이터 시트 확인법을 살펴보고 나서 이러한 IoT 장비들의 취약점을 분석할수 있는 몇가지 도구들을 분석하였습니다. 다양한 취약점 진단 도구들이 통합된 AttifyOS부터 바이너리 이미지에서 데이터를 추출하는 Binwalk 그리고, 펌웨어 이미지를 추출하고 리빌드를 수행하는 FMK, 포트/서비스/취약점을 스캐닝 하는 Nmap, 소스 코드로부터 취약점을 정적으로 분석해주는 Yasca까지 다양한 취약점 진단 도구들이 어떤것이 있는지 알아보았습니다.
  • 마지막으로 벡터 함수들을 미분한 경우들인 그라디언트와 자코비안, 헤시안 행렬들을 살펴보았습니다. 그라디언트는 벡터 함수를 하나의 변수로 미분한 것이었고, 자코비안은 벡터 함수를 다변수 1미분, 헤시안 행렬은 벡터 함수를 다변수 2미분이라 할수 있었습니다. 다양한 최적화 방법들에 있어서 이러한 벡터 함수들의 미분으로 전역 최저점으로 수렴하는 방향을 찾아낸다고 하니 수식으로 잘 정리하며 오늘 학습을 마무리 하였습니다.

 

 

 

300x250

'미분류' 카테고리의 다른 글

영상이해를 위한 최적화 기법  (0) 2020.07.26
2020-07-22  (0) 2020.07.25
2020-07-20  (0) 2020.07.21
2020-07-17  (0) 2020.07.19
2020-07-16  (0) 2020.07.18
728x90

2020-07-20

  • 지난 시간에 선형 대수 전반의 내용을 마무리 하고 최적화를 다루기위해 1변수, 다변수, 컨벡스 함수 등의 내용들을 간단하게 살펴보았습니다. 하지만 자료 정리를 제대로 하지 못하여 이번 시간에는 스마트 홈 보안 내용을 학습함과 동시에 최적화 관련 내용들을 정리하였습니다.
  • 정보 처리 기사 시험볼때 보안 이론을 일부분 학습 한 적이 있었는데, 코드를 어떻게 하면 안전하게 구현할수 있는지에 대한 방법들을 배웠었습니다. 하지만 그걸로는 부족한것 같아 IOT 관련 보안 교육을 신청하여 수강하게 되었습니다. 오늘은 IOT홈과 관련된 다양한 보안 사고들과 구성에 대해서 살펴보는 시간을 가졌습니다.
  • 우선 IOT 홈이 냉장고, 에어컨, 전등, 웹캠 등 기존의 모든 가전 제품에 적용될수 잇으며 이에 사용 가능한 블루투스, 와이파이, 지그비, 로라 등 다양한 통신 방식에 대해 살펴보았고, 이러한 다양한 통신 방식중에 전력과 속도, 통신 가능 거리에 따라서 지그비 통신이 가장 많이 사용하는걸 알게 되었습니다. 이러한 집 장비들이 IOT가 되면서 다양한 보안 결함을 가지게 되어 악의적인 메일을 전송하는 봇이나 사생활 침해를 하는 도구로 활용될수 있는 위험에 대해서 들었습니다.
  • 대표적으로 AI 스피커 플랫폼의 경우에 사용자의 음성을 무단으로 녹음하여 공격자에게 전달한다거나, 사용자의 음성을 녹음 후에 다시 사용하여 임의로 가정 집을 제어할수도 있는 등 AI 스피커 플랫폼을 공격하는 몇가지 시나리오에 대해서 학습하였습니다.
  • 본적적으로 IOT 홈과 관련된 취약점 실습을 하기에 앞서 하드웨어 구조를 살펴보았습니다. 여기서 사용되는 라즈베리파이나 아두이노, STM, TI 사의 보드 등 다양한 개발 보드들을 살펴보고, 이러한 보드에서 사용가능한 운영체제들과 GPIO 제어, 그리고 활용가능한 센서들에 대해서 학습하였습니다. 개발 보드와 센서 간에 GPIO 제어가 이루어 지지만 중간에 존재하는 취약점들을 통해 오작동 위험성을 파악할 수 있게 되었습니다.
  • 오늘은 여기까지 IOT홈에 대한 내용들을 다루었고, 다음 시간에는 AI 스피커의 활용과 펌웨어, 인터페이스 구조, 데이터 시트 확인 등 조금 더 깊이 있는 내용들을 학습할 예정입니다.
  • 이후 이전에 정리하지 못하였던 1변수 함수와 다변수 함수에 대한 내용들을 다시 정리하였습니다. 1변수 함수는 한 종류의 독립변수로 이루어진 함수로, 함수는 여러개의 정의역 원소가 하나의 공역 원소에 대응하는 관계라 할 수 있었고, 일단 1변수 함수의 도함수인 상미분과 테일러 급수 정리를 살펴보았습니다.
  • 1변수 함수에 대한 내용을 간단히 정리하고 나서 여러개의 독립 변수로 이루어진 다변수 함수와 이러한 다변수 함수를 행렬 형태로 표현한 이차 형식에 대해서 정리하였으며, 다변수 함수의 미분인 편미번과 전미분에 대하여 정리할 수 있었습니다.
  • 다변수 함수가 주어질때 각 변수들에 대한 편미분인 그라디언트, 다변수 함수 여러개가 주어질때 각 변수들에 대한 편미분 행렬인 자코비안, 다른 변수들을 같이 미분하는 헤시안 행렬 등 기울기와 관련된 다양한 행렬 표현들의 정리를 하며 오늘 학습을 마무리 할 수 있었습니다.
300x250

'미분류' 카테고리의 다른 글

2020-07-22  (0) 2020.07.25
2020-07-21  (0) 2020.07.22
2020-07-17  (0) 2020.07.19
2020-07-16  (0) 2020.07.18
2020-07-15  (0) 2020.07.16
728x90

2020-07-17

  • 지난 시간에는 최적화를 본격적으로 다루기에 앞서 선형 대수를 복습하면서 기존에 알고 있던 내용들은 다시 확인하고, 확실하게 정리되지 않았던 벡터 공간과 고유치,고유벡터, 분해, 그리고 그림 슈미트 직교화 등에 대해서 살펴보면서 조금씩 조금씩 부족하게 알고 있던 내용들을 채워나갈수 있는 기회였습니다. 이후 공간에서 회전을 다루는 군과 행렬에 있어서의 분해 방법들을 보면서 선형대수를 마무리하고, 실제 최적화 방법들을 다루기 전에 필요한 함수들에 대한 다양한 개념들을 살펴보면서 학습을 마무리하였습니다. 단 이번에는 블로그 상에 올리지는 못한채로 정리하였습니다.
  • 우선 지난번에 살펴본 군은 어느 이항 연산자와 관련된 연산들을 만족하는 집합을 군이라고 불렀는데, 이러한 군중에서 공간상에서 물체의 회전에 대한 군들을 살펴보았습니다. 이때 회전 군은 3차원 행렬을 하나의 원소로 하고 있는데, 이러한 회전 군으로 대표적으로 오일러 각이 있었습니다. 오일러 각은 각 축에 대한 회전량 만큼을 행렬로 나타내고 있어, 즉 X축에 대한 회전행렬, Y축에 대한 회전행렬, Z축에 대한 회전 행렬로 구성이 되어있으며, 가장 이해하기 쉬운 회전 표현이지만 자유도가 사라지게 되는 짐벌락 현상의 문제로 오일러각을 대체하는 쿼터니언이라는 방식이 있습니다. 쿼터니언은 합이 1인 4개의 숫자로 오일러 각에 비해서 회전 형태를 이해하기는 힘들수는 있으나 짐벌락 현상이 발생하지 않으며, 컴퓨터 연산을 고속으로 할수 있는 장점을 가지고 있었습니다.
  • 그 다음으로 특이값 분해와 촐래스키 분해에 대해서 간단히 살펴보았습니다. 특히, 특이값 분해는 이전에 영상 처리를 공부하면서 잠시 살펴본 적이있었는데, 당시 이런 선형대수에 대한 배경지식없이 단편적인 특이값 분해를 보았을때 도저히 이해할수가 없었습니다. 하지만 앞선 행렬로부터 대각 성분을 분해하여 이차 형태를 만드는 과정을 살펴보고 난 이후여서인지 조금 수월할수 있었습니다. 특이값 분해에서는 주어진 행렬을 두 직교 행렬과 특이값들로 이루어진 하나의 대각 행렬로 분해하여 이차 형태를 만드는 방법임을 확인하고, 특이 값 분해로 추정을 하기 전에 선형 시스템을 잠시 살펴보았는데, 선형 시스템은 변수의 개수와 방정식의 수에 따라서 소거법으로 해를 구할수 있으나, 정확한 해를 구하지 못하는 경우도 존재합니다. 그 때 오차가 최소가 되도록 하는 근사 해를 최소 제곱법을 이용하여 구하여야 하는데 이때 특이값 분해를 이용해서 근사해를 구하는 과정을 살펴보았습니다. 이후 행렬이 양 확정행렬일때 사용하는 촐레스키 분해에 대해간단히 살펴보면서 선형대수 복습을 마무리 하였습니다.
  • 다음으로 최적화를 다루기에 앞서 다양한 함수들을 살펴보았는데, 우선 가장 간단한 경우인 일변수 함수에 대해서 알아보았습니다. 이 개념은 공업 수학에서 이미 살펴보았기 때문에, 일변수 함수의 미분(도함수)인 상미분 정의를 살펴보고 빠르게 지나갔으며, 중간값 정리, 거듭 제곱 급수에서 계수를 정리하여 구한 테일러 급수를 알아보았습니다.
  • 이후에는 이 테일러 급수에서 1차 미분을 0으로 하여 최대값을 찾는 2차 미분 테스트를 알아보고, 최적화에서 사용되는 함수에서의 최소 지점인 최솟값과 최솟값을 찾는 변수 x의 값인 최소자 그리고, 전역과 지역에 따라 전역 최소자와 지역 최소자, 그리고 기울기가 0인 임계 점등의 개념들을 살펴보았습니다.
  • 마지막으로 다변수 함수 개념에 대해서 보았는데, 이 또한 공업 수학에서 살펴본 덕분에 간단하게 알아보았습니다. 우선 다변수 함수는 n 벡터공간에서 m 벡터공간으로 정의하는 함수로서 대표적으로 이변수 함수가 있는데, 여기서 2변수 함수를 이용한 행렬 형태를 이차 형식이라고도 합니다. 여기서 이차 형식은 선형대수를 다루면서 종종 볼 수 있었고, 이 외에도 삼변수, n변수 함수로 분류하기도 합니다.이후 내용은 이전과 마찬가지로 다변수 함수에서의 테일러급수를 살펴보면서 마무리하였습니다.
300x250

'미분류' 카테고리의 다른 글

2020-07-21  (0) 2020.07.22
2020-07-20  (0) 2020.07.21
2020-07-16  (0) 2020.07.18
2020-07-15  (0) 2020.07.16
2020-07-14  (0) 2020.07.15

+ Recent posts