▶ 통계학과 머신러닝

→ 데이터가 형성하고 있는 패턴을 이야기할 때 '확률'을 사용

 

▶ 선형 회귀 알고리즘(Linear Regression)

→ 종속 변수 y와 한 개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 기법

오차가 가장 적은 y = f(x) 함수를 찾는 문제     (※ f(x) = mx + b)

▷ 기계가 학습하는 방법

① 아무렇게나 그리기

② 정답 비교하기 

③ 선 조정하기

④ 학습 완료

최적의 Cost Function 값을 찾아라!

※ Cost Function : Regression Line 값과 실제 데이터의 차이를 비용으로 계산한 함수

 

▶ 선형 회귀 모델링

jupyter notebook 이용

- total data = train : test = 8 : 2

→ 충분한 데이터로 학습한 후 미리 확보했던 테스트 데이터를 모델에 넣어봤을 때 얼마나 정확하게 판단하는지 확인

▷ train.csv

train.csv의 컬럼을 보면 마지막 컬럼이 medv인 것을 확인할 수 있다.

 

▷ test.csv

반면, test.csv의 컬럼을 보면 medv가 존재하지 않는다.

→ total data = train.csv

→ 이 데이터를 train과 test로 나누고 학습한 결과 모델을 test.csv에 적용하면 예측하는 predicted medv 값이 나오는 것

→ 즉, 정답지가 제공되지 않은 데이터셋을 의미

 

▷ Boston_lm

sklearn : 학습한 것이 잘 되었는지 안 되었는지를 평가하는 것과 관련된 기능

학습에 사용할 수 있는 feature의 개수는 정답지인 medv를 제외한 13가지

총 333개의 row와 15개의 컬럼이 존재

Series(1차원)로 나오지 않도록 .to_frame()을 이용하여 변경해주어야 함

전체 row 개수인 333에서 60개를 뺀 273을 x_train에, 나머지를 x_test에 넣어주기 (train 데이터를 쪼개는 과정)

- x_train과 y_train의 row 개수는 같아야 함

- x_test와 y_test의 row 개수는 같아야 함

- x_train x_test의 컬럼 개수는 같아야 함

fit/train ← x_train + y_train

model ← predict(x_test) 

y_predict와 y_test를 비교해보기

Mean Squared error : 45.95 → 오류의 합, 값이 크면 클수록 좋지 않음

제대로 된 직선이 아님을 확인

즉, crim이라는 요인은 집값을 결정하는 중요한 요인이 아님을 알 수 있음

가장 좋은 결과 값을 갖는 feature은 lstat이라는 요인이었다.

 

▶ 기초 통계학과 특징 공학

▷ 통계학과 머신러닝

통계학 : 데이터에서 의미를 찾아내는 학문

머신러닝 : 데이터에서 찾은 의미를 활용하기 위한 학문

예측을 하려면 데이터의 특성을 파악할 줄 알아야 함

 

▷ 데이터의 중심 경향

① 평균값 : 모든 수를 더한 값을 개수로 나누기

② 중간값 : 가운데에 있는 값

③ 최빈값 : 데이터에서 가장 많이 나타나는 값

④ 범위 : 데이터 상한값 - 데이터 하한값

⑤ 사분위수 : 데이터를 네 개의 조각으로 나눈 값

 

▷ 데이터의 변이와 분포

- 변이 : 데이터의 평균값으로부터 얼마나 떨어져 있는가?

- 분산 : 평균값으로부터의 거리를 제곱해서 평균을 구한 값

- 표준편차 : 분산에 제곱근을 씌운 값 → 평균값으로부터의 거리

 

▷ 기초 통계 이론

- 조건부 확률 : 어떤 사건 B가 일어났을 때 사건 A가 일어날 확률

☆ 베이즈 정리 : 두 확률 변수의 사전 확률과 사후 확률 사이의 관계를 나타내는 정리

- 정규 분포 (=가우시안 분포)

정규 분포

- 왜도 : 데이터의 대칭 정도(어느 쪽에 치우쳤는지)

- 첨도 : 정규분포 대비 봉우리의 솟음 정도(봉우리가 어느 정도로 솟아있는지)

- 확률 밀도 함수(PDF) vs 누적 분포 함수(CDF)

 

▷ 머신러닝과 통계

① 기본 통계 수치 확인

- 기본 수치만 살펴보더라도 데이터의 분포와 대략적인 특성 추측 가능

- 데이터 특성 정보를 특징에 바로 사용하는 것도 가능

② 특징 공학

- 편향된 데이터는 중심을 맞춰주고, 특징 범위가 차이가 많이 나면 정규화를 시켜줌

- 모델 정확도와 성능에 큰 영향을 주는 특징 공학에도 통계 지식이 필수

③ 특징으로 사용하기

- 평균, 중간값, 범위, 최빈값, 사분위값, 첨도, 왜도는 생각보다 많은 정보를 줌

 

▷ 특징 공학

→ 로우 데이터를 예측 모델의 기저에 있는 문제들을 잘 표현해주는 특징들로 변환하여 처음 보는 데이터에 대한 모델 정확도를 향상시켜 주는 방법

 

▷ 특징 공학 프로세스

① 관찰

- 데이터의 형식은 무엇인가?

- 에러가 없는가?

- 데이터 단위는?

② 전처리

- 형식화 : 분석 목적에 맞는 적절한 파일 형식으로 변환, 데이터베이스에 저장

- 정제 : 문제 해결에 도움이 되지 않는 데이터는 제거, 누락된 데이터 처리

- 샘플링 : 초기 실험에는 일부 데이터만 선택해서 모델링을 할 필요가 있음 (학습시간↑)

③ 추출

- 데이터가 알고리즘이 처리하기에 너무 많은 정보를 담고 있는 경우 특징만 뽑아내야 함

④ 구현

- 직접 특징을 추출하는 방법 → 데이터 구조와 기저 정보에 대한 깊은 이해가 필요

⑤ 변환

- 스케일링 : 전처리 후 데이터의 단위는 제각각 → 범위를 0~1 값으로 치환해 주는 것이 이상적

- 분해 : 하나의 특징이 복잡한 여러 개념을 포함하는 경우 여러 개의 특징으로 분리하거나 선택적 추출

- 결합 : 두 가지를 동시에 고려했을 때 더 큰 의미를 가지는 특징들은 하나의 특징으로 결합

- 변환 : 특징 변수를 모델에 사용할 수 있는 데이터 형식으로 변환

⑥ 선택

- 문제 해결에 도움이 되지 않는 특징은 과감히 버리고 중요도가 높은 특징만 선택

- 적은 속성은 모델의 복잡도를 감소시키고, 모델을 단순화 해 줌 (← 좋은 특징)

- 관련성 : 특징이 모델의 성능에 영향을 미치는 정도를 판단하기 위한 수치

- 유용성 : 주어진 모델에서 에러를 최소화하는 것과 관련된 수치

'WINS STUDY > AI 사이버보안' 카테고리의 다른 글

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week03_파이썬 라이브러리  (0) 2022.06.25
Week02_머신러닝  (0) 2022.06.04
Week01_인공지능 시대와 정보 보안  (0) 2022.05.27

▶ 학교 만들기

칠판, 책상, 의자
사물함
교실 외부
교실 내부
4개의 교실과 복도
계단과 2층
2층짜리 학교 완성본
이와 같이 블록으로 나무 제작도 가능
번거로운 소품들은 도구 상자 이용하기
학교운동장
학교 완성본
baseplate 조정하여 마무리

 

※ 도구 상자 사용 시 주의사항

→ 악성 스크립트가 있는 경우가 존재

위와 같이 탐색기에서 script 검색 후 반드시 확인해주기

 

[홈] - [게임설정] - [게시]
로블록스 페이지 - [만들기]

위와 같이 서버에 잘 게시된 것을 확인할 수 있다.

 

플러그인 : 로블록스 스튜디오 편집을 좀 더 쉽게 도와주는 외부 프로그램

→ 도구 상자에서 찾아서 사용

- ThreeDText : 글자 두께, 색상, 크기 등 설정 가능

- Brushtool : 모델 한꺼번에 배치

- GeomTools : 모델의 연결 부분을 채워줌

- Building Tools by F3X : 이동, 크기,회전, 색상 등 더 손쉽게 가능

- Model Resize : 크기 조정

▶ 파이썬 기능 이해

- Numpy : 데이터 조작, 처리 → 다른 패키지의 기본이 되는 패키지

- Pandas : Numpy로 만든 패키지, 쓰기 편하고 직관적

- Matplotlib : 시각화 관련, 코드를 가져와서 실행할 수 있으면 됨

- Tensorflow : 딥러닝을 위한 라이브러리, 패턴 익히기

 

▶ Numpy

▷ Jupyter notebook 사용법

명령 프롬프트에서 jupyter notebook 입력
New - python3

- [SHIFT] + [ENTER] = Run

 

▷ Numpy

- jupyter 가상환경에서 만들어진 파일 확장자명 : .ipynb

 

★ 배열을 잘 다루자!

※ row x col

→ Numpy 패키지를 통해 row by col 형식으로 사용할 수 있음

① 만드는 방법 (확인)

② 하나 이상의 데이터 선택 (검색)

③ 두 데이터를 합치는 방법

④ 하나의 데이터를 쪼개는 방법

 

1) Numpy 사용법

import numpy as np

→ numpy 패키지 가져오기, np라는 약칭으로 사용

 

2) Numpy 배열

- 벡터 : 1차원 배열

- 매트릭스 : 2차원 배열 (거의 많이 사용)

 

3) 배열 생성하기

1. 파이썬 리스트 이용: np.array([list])
2. 0또는 1로 채우기: np.zeros(), np.ones()
3. 일정한 간격을 가지는 숫자 배열: np.arange()
4. 일정 범위 안에서 일정 갯수를 가진 배열: np.linspace()
5. 랜덤 값을 가지는 배열: np.random.rand() / randint() / randn()
6. 등등

악성코드 개수 판단 시 사용

- np.arrange(start,end) : start ~ end-1

- np.random() : 임의의 값을 만들어 좌표상에 찍어놓고 테스트할 때 사용

 

4) 배열 요소 접근 및 범위 선택

1. 배열 요소 접근 방식은 파이썬 리스트와 동일
2. 범위 접근자(:) 사용 시 범위에 주의하기 ( 1:5 는 1부터 4까지를 의미 )
3. 배열 복사(메모리 문제 방지): XXX.copy()
4. 특정 조건에 해당하는 데이터 선택은 인덱스 사용

배열 요소 접근

 

5) 배열 다루기

1. 배열 모양 확인: XXX.shape() 
2. 배열 내의 데이터 자료형 확인: XXX.dtype
3. 배열 모양 변경: XXX.reshape()
4. 데이터 타입 변경: XXX.astype()

☆ 모든 데이터 로드 후 불러온 데이터의  모양과 크기를 확인하기 위해 shape()를 해주어야 함

- np.concatenate() : 배열 합치기

- rst[] : 배열 쪼개기

 

▶ Pandas

▷ Numpy의 한계점

→ 데이터를 인덱스로만 접근할 수 있음

 

▷ Pandas

- dataframe(numpy+name) : 배열의 row와 col의 이름을 설정할 수 있음

- file load, save

① 만드는 방법 (확인)

② 하나 이상의 데이터 선택 (검색)

③ 두 데이터를 합치는 방법

④ 하나의 데이터를 쪼개는 방법

 

1) pandas 사용법

import pandas as pd

→ pandas 패키지 가져오기, pd라는 약칭으로 사용

 

2) 파일 불러오기/저장하기

1. CSV  : pd.read_csv() / pd.to_csv()
2. EXCEL: pd.read_excel() / pd.to_excel()
3. HTML : pd.read_html() / pd.to_html()
4. SQL  : pd.read_sql() / pd.to_sql()

→ csv, excel, html, sql 소스에서 데이터를 읽어오는 함수 제공

→ 불러온 데이터는 pandas의 dataframe 객체 형식으로 자동 저장

 

3) pandas 자료형

- 1차원 : Series → pd.Series()

- 2차원 : Dataframe → pd.DataFrame()

 

4) DataFrame

→ 컬럼 차원의 접근이 유리

1. DataFrame = Series + Series + ... + Series
2. 거의 모든 데이터 처리에 DataFrame 사용
3. 데이터프레임 정보 보기: head(), shape(), info(), describe()
4. 특정 요소에 접근하기
5. 데이터프레임 쪼개고 합치기
6. 누락 데이터 처리하기

- head() : 첫 5줄만 출력

- shape() : 데이터의 전체적인 개수, 속성의 개수

- info() : null값, 자료형 확인 가능

- describe() : 숫자형으로 되어 있는 컬럼의 기본적인 통계수치

 

5) DataFrame Row 접근

1. loc : 라벨값 기반의 2차원 인덱싱
2. iloc : 순서를 나타내는 정수 기반의 2차원 인덱싱 (일반 배열처럼 사용)

 

6) DataFrame 합치기

1. 새로운 col 또는 row 추가
2. col을 기준으로 데이터프레임 병합
3. row를 기준으로 데이터프레임 병합

→ pd.cocat()

 

7. 결측 데이터 처리

1. 데이터프레임에 결측 데이터가 있는지 확인
2. 결측 데이터 처리를 어떻게 할 것인가?
    1) 데이터가 충분히 많은 경우: 결측 데이터를 포함한 row를 제거
    2) 데이터 하나 하나가 소중한 경우: 결측값을 다른값으로 대체

- isnull() : 결측값이 있는지 확인

- dropna() : 결측값 제거

- fillna() : 특정 값으로 결측값 대체

 

▷ numpy vs pandas

- numpy : ml, dl

- pandas : static, da

 

▶ Matplotilib

→ 데이터를 가지고 그리는 방법보다 무엇을 그려야할지가 더 중점

 

1) Matplotlib 사용하기

import matplotlib.pyplot as plt

 

2) 기본 그래프 그리기

plot() : 그림 그려주는 함수, show() : 그림을 띄워줌

 

3) 그래프 옵션 조정

1. plot() 옵션
    - color : 선 색깔 변경  
    - marker : 데이터 변화(꺾임) 부분 표시
    - label : 범례값 지정
    - linestyle : 선 모양

2. 그래프 옵션
    - plt.xlabel() : x축 설명
    - plt.ylabel() : y축 설명
    - plt.title()  : 그래프 제목
    - legend() : 범례 표시
    - plt.xlim() : x축 범위
    - plt.ylim() : y축 범위

 

▶ Pandas + Matplotilib

데이터를 데이터프레임 형식으로 저장할 경우 쉽게 시각화를 할 수 있음

→ df.plot.area, df.plot.barh, df.plot.density, df.plot.hist, df.plot.line, df.plot.scatter, df.plot.bar, df.plot.box, df.plot.hexbin, df.plot.kde, df.plot.pie

import matplotlib.dates as mdate
%matplotlib inline

'WINS STUDY > AI 사이버보안' 카테고리의 다른 글

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week04_통계학과 머신러닝  (0) 2022.07.07
Week02_머신러닝  (0) 2022.06.04
Week01_인공지능 시대와 정보 보안  (0) 2022.05.27

1. 로블록스 소개

1) 로블록스

- 메타버스의 대표 주자

- 샌드박스 게임 플랫폼

- 게임을 만들어 직접 유통할 수 있는 플랫폼을 제공하는 것이 핵심

- 게임을 제작할 수 있는 "로블록스 스튜디오"가 핵심 경쟁력

- 별도의 서버 없이 게임을 제작해서 제공할 수 있음

- 10대들의 놀이터 → 10대를 대상으로 사업 진행 시 관심 필수

- 메타버스 : 콘텐츠(월드), 플랫폼, 저작, 인프라, 인터페이스, 엔진 

- 자유도↑, 미래 성장 전망↑

 

2) 로블록스 특징

- 홍보용 월드 구축에 탁월

- 상호작용성 강화 → 고객과의 지속적인 관계 형성

- 게임성 강화 → 재미/몰입을 통해 지속적인 방문 가능

 

로블록스 스튜디오 시작 화면

 

2. 로블록스 스튜디오 화면 구성

모델
테스트
보기
플러그인

 

3. 로블록스 스튜디오 조작 방법

- [Ctrl] + [S] : 저장

- 마우스 좌클릭 : 선택

- 마우스 우클릭 : 둘러보기, 퀵메뉴(오브젝트)

- 마우스 휠 : 확대/축소

- [A] : 좌로 이동

- [D] : 우로 이동

- [W] : 앞으로 이동

- [S] : 뒤로 이동

- [Q] : 수직 아래로 이동

- [E] : 수직 위로 이동

 

4. 로블록스 월드 만들기

1) 파트 종류 및 재질 변경

[모델] - [파트]
블록 - 구형 - 쐐기형 - 원통
다양한 재질 선택 가능
다양한 색상 선택 가능

 

2) 파트 이동, 크기 조정, 회전, 변형

단축키 : [Ctrl] + [1/2/3/4/5]

- [Ctrl] + c, [Ctrl] + v를 사용하여 복사/붙여넣기 가능

- [Ctrl] + d : 그 위치에 복제

- [Ctrl] + z : 되돌리기

 

[모델] - [이동] : [Ctrl] + 2

- x축 : 빨간색 화살표

- y축 : 초록색 화살표

- z축 : 파란색 화살표

 

[모델] - [크기] : [Ctrl] + 3

 

[모델] - [회전] : [Ctrl] + 4

 

[모델] - [변형] : [Ctrl] + 5

→ 여러 변형을 한꺼번에 할 수 있음

 

→ 해당 값을 변경하여 미세 조정 가능

 

3) 파트 조합하여 새로운 모양 만들기

→ 원통형 두개 선택 후 무효화, 전체 선택 후 통합하면 위와 같이 뚫린 도형을 만들 수 있음

 

4) 파트에 효과 넣기

[모델] - [효과]

→ 이와 같이 다양한 효과를 낼 수 있음

 

5) 사물 기획하고, 파트의 크기 가늠하기

[플러그인] - [리그 빌드]

→ 리그를 선택하여 파트 크기 가늠 가능

 

나무 의자/책상 만들기

 

1.  커스텀 오브젝트 사용방법

 커스텀으로 만들어진 오브젝트도 사용 가능

 [more objects] - [Upload New] - 새로운 이미지 업로드

32px 기준 블록 1칸을 차지함

 

2.  상호작용 오브젝트 배치하기

[more objects] - [professional events] 

상호작용할 수 있는 오브젝트들 

 

→ video : 넣고 싶은 비디오의 url 주소를 넣어주면 됨

→ image : advanced 속성을 바꿔주지 않고 단순 파일 선택으로 이미지 업로드 가능

 

 외부에서 공유하여 사용할 수 있는 웹 서비스들의 url만 사용 가능

ex) 구글 공유 문서, 설문 등

 

일반 오브젝트 선택 후 상호작용 기능 선택 가능

 

3.  프라이빗 영역 지정, 스포트라이트 만들기

같은 코드 내에 있는 지역에 모인 사람들끼리만 상호작용 가능

 

→ 누구에게나 상호작용할 수 있는 권한

 

4.  포탈로 룸 연결하기

→ 공간을 이동할 수 있는 portal 기능

→ portal type 선택 후 이동할 portal 선택

→ 이동할 공간에서 처음 위치할 곳을 지정

 

5.  게더타운과 함께 사용하면 좋은 사이트와 팁

- padlet : 방명록 기능, 토론 기능

오브젝트 추가 후 embedded website 속성으로 padlet 주소 넣어주기

- maze generator : 미로 모양의 이미지를 만들어 새로운 게더타운 룸을 만들 수 있음

→ [create a new room] - [create a blank room] - [upload a background] 한 후 오브젝트 배치

- map editor2

→ 맵을 미리 만들어놓은 후 이미지 저장하여 게더타운에서 오브젝트 배치

 

6.  업데이트 부분

1) create event : 이벤트 생성

2) information board : 공지 기능

3) volume : 참가자 음량 조절 가능

※ 머신러닝은 어떤 분야에 적용될까?

→ 데이터가 있고, 환경의 변화가 있는 모든 분야에 적용된다.

데이터의 패턴을 파악하여 기존에 해결하지 못했던 문제를 해결하는 것이 목적

 

※ 머신러닝이 적용된 대표적인 사례

→ 주차장 차량 번호판 인식

 

▶ 머신러닝 프로세스

→ 모델을 학습시키는 과정

▷ 현실 세계

→ 현실 세계의 문제점이 시작점

ex) 사진에 있는 동물이 새인지 강아지인지,,, 등등

 

 데이터 수집

→ 컴퓨터를 학습시키기 위해서는 많은 양의 데이터가 필요함

1) 이미 수집된 데이터가 있는 경우

 데이터가 많다고 다 쓸 수 있는 것은 아니다.

2) 완전히 새로 수집해야 하는 경우

→ 한 번도 보지 못한 데이터를 얼마나 정확하게 판단할 수 있는지가 최종 목표

→ 지속적으로 데이터를 수집하는 것이 중요

※ 데이터 수집 시 고려사항

① 얼마나 많은 데이터가 필요한가?

② 어떤 특성을 포함해야 하는가?

③ 훈련 데이터가 충분히 대표성을 띄는가?

④ 데이터는 어떤 형식으로 가져올 수 있는가?

 

▷ 데이터 전처리

→ 모델의 성능을 평가할 수 있는 가장 중요한 단계

→ 컴퓨터에게 정확한 답을 알려주어야 함

데이터 시각화와 함께 진행

※ 데이터를 그대로 특징으로 사용할 수 있는 경우

① 형식화 : 분석 목적에 맞는 적절한 데이터 형식으로 변환

② 정제 : 문제 해결에 도움이 되지 않는 데이터는 제거, 누락된 데이터 처리

③ 정규화 : 개별 특징이 동일한 숫자 범위 안에 들어가도록 변환

④ 분해 : 하나의 특징이 복잡한 여러 개념을 포함하는 경우 분리 or 선택

⑤ 결합 : 두 가지를 모두 고려했을 때 더 큰 의미를 가지는 특징은 결합

 

▷ 특징 추출

→ 모은 데이터를 준비하고 다듬고 정리하는 과정

★ 특징 공학

→ 머신러닝의 성공을 결정하는 핵심

1) 어떤 데이터를 얼마나 모았는가

2) 그 데이터에서 고유한 속성을 어떻게 뽑았는가

※ 특징

→  관찰 대상에서 발견한 개별적이고 측정 가능한 경험적 속성

ex) 사진에서 동물이 강아지인지 새인지 구분하는 방법 : 날개의 유무, 날개와 털의 색상이 같은지

어떤 기준, 즉 어떤 특징을 사용할지 결정하는 것이 중요

※ 특징 선택 방법

① 전진 선택 : 특징이 없는 상태에서 하나씩 추가하면서 찾는 방법

② 후진 제거 : 전체 특징에서 시작해 하나씩 제거하면서 찾는 방법

③ 차원 축소 : 정보의 양을 주 성분 특징으로 모아주는 방법

 

▷ 모델 구축

→ 실제로 모델을 만들고 학습시킴

 제대로 된 모델을 구축하기 위해서는 1) 문제가 명확해야 하고, 2) 문제에 필요한 데이터를 수집을 잘 해야 하고, 3) 적절한 처리를 거친 후에 정확한 기준을 마련해야 하고, 4) 데이터에서 기준에 해당하는 특징을 뽑아놓은 상태여야 함

1) 단일 모델 사용

- 데이터 특성에 맞는 모델을 찾는 것이 중요

- 모델링을 했다 : 선택한 모델 * 모델 매개변수 * 특징 조합 * 교차 검증 = ?

2) 다중 모델 사용

- 앙상블(ensemble) / 스태킹(stacking)

- 여러 개의 모델을 연결해 하나의 모델처럼 만들기

- 모델 판단 결과를 새로운 특징으로 사용하기

※ 데이터의 속성

1) 정적 데이터

- 일반적인 모델링

- 모델링과 테스트가 동일한 데이터

→ 대부분의 보안 위협들은 정적 데이터 방식으로 모델링

2) 시계열 데이터

- 어떻게, 언제, 얼마나 판단할지 직접 결정

- 특정 범위에서 얼마나 벗어났는지를 통해 판단하는 이상 탐지

→ 네트워크 기반의 데이터, 로그 분석 등은 시계열 데이터 방식으로 모델링

 

▷ 모델 평가

→ 학습이 제대로 되었는지 평가

 

▷ 모델 최적화

→ 원하는 성능이 안나왔을 경우 재학습하거나 옵션 조정을 통한 최적화

→ 모델 최적화는 사실상 모델 평가를 의미

 모델링 시점의 최고 모델 vs 운영 시점의 최고 모델

※ 모델 배치

1) Offline러닝

- 한 번 만든 모델을 영구적으로 사용

- 대부분의 모델이 해당

- 주기적으로 모델을 업데이트

2) Online러닝

- 모델을 실시간으로 업데이트 하는 방식

- 매번 학습 시마다 모델을 새롭게 생성

 

'WINS STUDY > AI 사이버보안' 카테고리의 다른 글

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week04_통계학과 머신러닝  (0) 2022.07.07
Week03_파이썬 라이브러리  (0) 2022.06.25
Week01_인공지능 시대와 정보 보안  (0) 2022.05.27

※ 정보보안관제 업무를 인공지능으로 대체 가능할까?

→ 100% 대체할 수는 없지만 업무의 비효율성이나 공격차단의 효율성은 좋아질 수 있을 것이다.

 

※ 정보 보안에 AI 기술이 어떻게 사용되는가?

1) 공격관점 : 알아서 해킹하여 시스템 파괴

2) 방어관점 : 모니터링, 분석, 관리 등

 

▶ 인공지능이란?

▷ 개념

→ 인간이 지닌 지적 능력인공적으로 구현한 것

→ 주어진 조건을 만족하는 최적의 해최적의 시간 내에 찾아내는 기술

→ 주변 환경에 맞는 성공 확률을 보장하는 최적의 행동을 취하는 기계

 

▷ 인공지능 시스템의 구조

1) 인지 : 센서로 주변 환경 인식

2) 처리&결정 : 학습한 결과를 토대로 데이터 처리

3) 행동 : 처리 결과를 실행에 옮김

 

▷ 인공지능의 역사

 

▷ 인공지능 방식

1) 알고리즘 기반 : 주어진 환경에 맞는 최적의 해를 계산 -> 교과서

2) 패턴 기반(데이터 중심) : 주어진 데이터의 패턴과 가장 유사한 해를 선택 -> 현장학습

 최신 인공지능은 대부분 알고리즘과 패턴 방식이 혼합된 형태

 

 

▶ 구글 트랜드(빅데이터, 패턴인식, 머신러닝, 딥러닝, 인공지능)

▷ 빅데이터

1) 데이터란?

→ 이론을 세우는 데 기초가 되는 사실 또는 바탕이 되는 자료

2) 왜 데이터인가?

→ 모든 현상과 가설의 '근거'가 되어주는 정보를 담고 있음

→ 직접 경험하지 않아도 데이터를 통해 '경험'을 얻을 수 있음

데이터 그 자체로는 단순한 자료에 불과하지만 적절한 방식으로 분석하여 활용한다면 굉장한 부가가치가 있다.

3) 3V : Volume(규모), Velocity(유입 속도), Variety(다양성)

4) 4V : 3V + Veracity(정확성) → 높은 데이터 품질 확보 필요

5) 5V : 4V + Value(가치)

6) 빅데이터 분석이란?

→ 플랫폼 구축과 활용 + 데이터 분석 기술

 

▷ 패턴인식

 

▷ 머신러닝

머신러닝 vs 딥러닝 vs 인공지능

 

1) 머신러닝이란?

→ 수많은 데이터에서 패턴을 파악하여 의사결정을 내리는 것

2) 머신러닝의 유형

① 지도학습 : Labled 훈련 데이터에서 함수를 도출해내는 학습법

② 비지도학습 : Unlabled 훈련 데이터에 숨겨진 구조 파악을 위한 함수를 도출해내는 학습법

③ 강화학습 : 보상을 기반으로 하는 학습법

3) 왜 머신러닝인가?

→ 컴퓨팅 성능과 데이터의 부족

 

▷ 딥러닝

1) 딥러닝이란?

→ 수많은 데이터에서 패턴을 파악하여 의사결정을 내리고 머신러닝의 포함관계

→ 딥러닝으로 활용 가능한 문제가 많아 인공지능 = 딥러닝으로 인식하고 있는 경우가 많음

2) 뉴럴 네트워크

→ 하나 이상의 hidden layer를 포함하는 머신러닝 알고리즘과 관련된 인공지능 뉴럴 네트워크를 연구하는 분야가 딥러닝

3) 딥러닝의 역사

 

▷ 인공지능

 

 

▶ 정보보호 분야의 인공지능 적용 사례

▷ 공격

→ 공격 대상 시스템의 취약점을 찾아 공격 후 목적을 달성하는 행위

1) 대상 선정

2) 정보 수집 : 공격 대상에 대한 정보 수집

3) 위협 모델링 : 대상의 취약점 식별

4) 취약점 분석

5) (후속) 공격 : 공격 목적 수행

6) 결과 보고

 

▷ 방어

→ 내/외부 위협(공격)으로부터 조직의 자산을 보호

1) 위협 유형

- 내부 : 내부 정보 유출, 내부에 침투한 공격자

- 외부 : 악의적인 해커

2) 방어 위치

- 네트워크 : 조직 네트워크 수준에서 방어

- 호스트 : 공격의 최종 목적지 방어

 

▷ 네트워크 침입 탐지

→ 대부분 네트워크 트래픽 모델을 기반으로 하는 네트워크 비정상 행위 탐지 방식을 사용의 탐지 기법과 함께 사용

충분한 양의 데이터 + 기존 시그니처 방식의 탐지 기법과 함께 사용해야 함

 

▷ 악성코드 탐지

→ 아무리 복잡한 난독화 알고리즘과 구조를 가진 악성코드도 결국 목적 코드를 실행

→ 최근에는 딥러닝 기반 악성코드 탐지 연구가 활발히 진행 중이며 인공지능 기능을 탑재한 백신도 등장

 

▷ 디지털 포렌식과 침해사고 분석

→ 모델링을 통해 파일 확장자를 찾아낼 수 있음

→ 데이터 정제로 부하를 줄인 후 빠르고 정확하게 판단

→ 일정한 패턴을 가진 로그로 잠재적 위협 판단 가능

 

▷ 정보보호 정책

→ 대부분 업무가 복잡한 계산보다는 경험과 사람의 판단이 중요시되는 정책 분야 -> 머신러닝 적용 가능

 

▷ 자동화 해킹

→ 인공지능만을 이용한 CTF 대회

→ 딥러닝보다 알고리즘, 데이터 양보다 정확성

→ 가능한 모든 경로를 탐색 + 제어 가능 여부 추적

 

▷ 적대적 머신러닝

 

'WINS STUDY > AI 사이버보안' 카테고리의 다른 글

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week04_통계학과 머신러닝  (0) 2022.07.07
Week03_파이썬 라이브러리  (0) 2022.06.25
Week02_머신러닝  (0) 2022.06.04

+ Recent posts