목록전체 글 (124)
minhui study
06-1. 신경망 알고리즘을 벡터화하여 한 번에 전체 샘플 사용하기 벡터화된 연산은 알고리즘의 성능을 올린다. 확률적 경사 하강법은 가중치를 1번 업데이트할 때 1개의 샘플을 사용하므로 손실 함수의 전역 최솟값을 불안정하게 찾는다. 배치 경사 하강법은 가중치를 1번 업데이트할 때 전체 샘플을 사용하므로 손실 함수의 전역 최솟값을 안정적으로 찾는다. 단, 알고리즘 1번 수행당 계산 비용이 많이 든다는 점에서 주의해야 한다. 벡터 연산과 행렬 연산을 알아보기 벡터화된 연산을 제대로 사용하려면 벡터 연산과 행렬 연산을 알아야 한다. 여기서는 신경망에서 자주 사용하는 벡터 연산 중 하나인 점 곱(스칼라 곱)과 행렬 곱셈에 대해 알아보자 x = [x1, x2, x3, x4, x5, x6....] w = [w1, ..
네트워크 계층 기반의 주요 공격 유형 패킷 네트워크 계층의 전송 단위로 패킷 단위를 처리하는 대표적인 장치로는 라우터 등이 있다. 네트워크 계층에서 나타나는 공격 IP스푸핑 공격에 기반한 랜드LAND 공격과 티얼드롭 Teardrop 공격 그리고 ICMP Flooding공격과 ICMP Smurfing 공격 등 → IP스푸핑 공격 : 출발지 IP주소를 조작해 자신을 은폐하는 공격 → LAND 공격 : IP 스푸핑 공격을 변형한 기법으로 출발지 IP주소를 아래 그림과 같이 목적지 IP주소와 동일하게 설정한 뒤 ICMP 요청 패킷을 공격 대상자에게 전송한다. : 공격 대상자는 ICMP응답 패킷을 전송하기 위해 출발지 IP주소를 참조하는데 이 경우 목적지 IP주고와 동일하기 때문에 ICMP 응답 패킷을 자신에게 ..
05-3 규제 방법을 배우고 단일층 신경망에 적용하기 왼쪽의 그래프를 보았을 때 검정색과 파란색 선 둘 중에 어떤 선이 점들을 더 잘 표현한 것일까? 보통 이런 경우 경사가 급한 그래프보다는 경사가 완만한 그래프가 성능이 더 좋다고 평가한다. 오른쪽 그래프는 몇 개의 데이터에 집착한 나머지 박스로 표시한 샘플 데이터를 제대로 표현하지 못한 경우를 보여주고 있다. 이런 경우를 '모델이 일반화되지 않았다'라고 말한다. 이럴 때 규제를 사용하여 가중치를 제한하면 모델이 몇 개의 데이터에 집착하지 않게 되어 일반화 성능을 높일 수 있다. 대표적인 규제 기법은 L1규제와 L2규제를 살펴보고 규제를 적용했을 때 손실함수의 그래프가 어떻게 변하는지도 알아보자 L1 규제 '가중치의 절댓값을 손실 함수에 더한 것' 손실..
05-1 검증 세트를 나누고 전처리 과정을 배우자 검증 데이터 준비 모델을 튜닝할 때 테스트 세트를 사용하게 되면 테스트 세트에 대해서만 좋은 성능을 낼 수 있고 실전에서 같은 성능을 기대하기는 어렵다. 따라서 모델 튜닝 시 테스트 세트를 사용하지 않아야 한다. 즉, 테스트 세트는 모델 튜닝을 모두 마치고 실전에 투입하기 전에 딱 한 번만 사용하는 것이 좋다.따라서 모델 튜닝을 위한 세트는 따로 준비해야 한다. 모델을 튜닝하는 용도의 세트는 검증 세트라고 하며 훈련 세트를 조금 떼어 만든다. 1. 데이터 세트 준비하기 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split canc..
04-4 분류용 데이터 세트 분류 문제를 위하여 사이킷런에 포함된 유방암 데이터 세트를 사용하자 유방함 데이터 세트에는 유방암 세포의 특징 10개에 대하여 평균, 표준 오차, 최대 이상치가 기록되어 있다. 여기서 우리가 해결해야 할 문제는 유방암 데이터 샘플이 악성 종양인지 혹은 정상 종양인지를 구분하는 이진 분류 문제이다. 의학 이진 분류 좋음 양성 종양(정상 종양) 음성 샘플 나쁨 악성 종양 양성 샘플 유방암 데이터 세트 준비하기 (1) load_breast_cancer()함수 호출하기 from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() (2) 입력 데이터 확인하기 cancer의 data와 target을 살펴보면 ..
04-3. 로지스틱 손실 함수를 경사 하강법에 적용하기 로지스틱 손실 함수 로지스틱 회귀와 같은 분류의 목표는 올바르게 분류된 샘플 데이터의 비율 자체를 높이는 것이다. 로지스틱 손실 함수는 크로스 엔트로피 손실함수를 이용하여 만들었다. 로지스틱 손실 함수는 다음과 같고 a는 활성화 함수가 출력한 값이고 y는 타깃이다. → 이진 분류는 그렇다(1), 아니다(0)라는 식으로 2개의 정답만 있다. 즉, 타깃의 값은 1 또는 0 이다. 따라서 위 식은 y가 1이거나 0인 경우로 정리된다. L y가 1인 경우 (양성 클래스) L = - log( a ) y가 0인 경우 (음성 클래스) L = - log( l - a ) * 양성 클래스인 경우 로지스택 손실 함수의 값을 최소로 만들려면 a는 1에 가까워지고, 반대로..
04-1. 초기 인공지능 알고리즘과 로지스틱 회귀 이진분류란 → 임의의 샘플 데이터를 True나 False로 구분하는 문제를 말한다. (1) 퍼셉트론 퍼셉트론은 선형 회귀와 유사한 구조를 가지고 있지만 마지막 단계에서 샘플을 이진 분류하기 위하여 계단 함수를 사용한다는 점이 다르다. 그리고 계단 함수를 통과한 값을 다시 가중치와 절편을 업데이타하는데 사용한다. 다음 수식에 의해 z를 만든다. 이를 '선형 함수'라고 부른다. 계단 함수는 z가 0보다 크면 1로, 0보다 작으면 -1로 분류한다. 즉, 퍼셉트론은 계단 함수의 결과를 사용하여 가중치와 절편을 업데이트한다. 앞에 3장에서는 특성을 1개(왼쪽그림)만 사용했는데 특성이 2개인 경우(오른쪽 그림) 선형 함수는 다음과 같다. (2) 아달린 아달린의 경우..
손실 함수와 경사 하강법의 관계 ▶ 손실함수 예상한 값과 실제 타깃값의 차이를 함수로 정의한 것으로 보통 '제곱 오차'를 손실 함수로 사용한다. 제곱 오차(squared error)는 다음과 같다. 경사 하강법은 '어떤 손실 함수가 정의되었을 때 손실 함수의 값이 최소가 되는 지점을 찾아가는 방법'이다. 위의 식을 풀어써보면 다음과 같다. 위의 식을 보면 w^2의 계수와 b^2의 계수가 항상 양수이므로 다음과 같이 아래로 볼록한 형태의 2차 함수가 그려진다. 경사 하강법은 위의 그래프에서 최소값인 접선의 기울기가 0이 되는 지점, 즉 미분값이 0인 점을 찾는 방법이다. 방법은 임의의 w 또는 b인 점에서 시작해 그 점에서의 접선의 기울기인 편미분 값을 빼나가는 것이다. w에 대해 편미분한 식은 다음과 같..