본문 바로가기

전체 글

(39)
[6주차] 신경망 알고리즘 벡터화 벡터화된 연산은 알고리즘의 성능을 높인다. 2차원 배열은 행을 샘플, 열을 특성으로 생각한 행렬이라고 할 수 있다. -> 행렬 연산을 사용하면 다차원 배열 계산을 빠르게 수행할 수 있다. ==> 벡터화된 연산 확률적 경사 하강법은 가중치를 1번 업데이트할 때, 샘플 1개를 사용해서 손실 함수의 전역 최솟값을 불안정하게 찾는다. 배치 경사 하강법은 가중치를 1번 업데이트할 때, 전체 샘플을 사용해서 전역 최솟값을 안정적으로 찾는다. 그러나 비용이 많이 든다는 단점이 있다. 벡터 연산과 행렬 연산 점 곱(=스칼라 곱) 단일 신경망에서 z를 구할 때, 가중치와 입력을 곱해서 더했다. (아래 식 참고) 아래 식이 가능했떤 이유는 numpy의 원소별 곱셈 기능 때문이다. 두 벡터를 곱하여 합을 구하는 계산을 점 ..
[5주차] 규제 방법, 교차검증 샘플 데이터에 딱 맞는 그래프(몇 개의 데이터에 집착한 모델)은 새로운 데이터에 적응하지 못해 좋지 못한 성능을 가짐 -> 이럴 때, 규제를 사용해 가중치를 제한하면 일반화 성능을 향상시킬 수 있다. 가중치 규제 - 가중치 값이 커지지 않도록 제한하는 기법 - 가중치 규제하면 모델의 일반화 성능이 높아진다. L1 규제(식은 책 참고) - 솔실 함수에 L1 노름을 더하면 L1 규제 만들어진다. - 손실 함수에 가중치의 절댓값인 L1 노름을 추가한다. - L1 노름의 n은 가중치 개수를 의미 - 알파 값이 크면 전체 손실함수 값이 커지지 않도록 w값의 합이 작아져야 한다. => 규제가 강해진다. - 알파 값이 작으면 w의 합이 커져도 손실 함수 값이 큰 폭으로 커지지 않는다 => 규제가 약해진다. L1 규제..
5장. 전송 계층 기반의 주요 공격 유형 포트 스캔 원격지 호스트를 대상으로 어떤 포트 번호를 사용중인지 확인하는 기법 TCP 헤더의 플래그 항목을 이용해 수행 Tools) Nmap, WireShark 등 Nmap을 활용한 포트 스캔 * TCP 오픈 스캔 nmap 127.0.0.1 -p 22 -sT - 자기 자신을 대상으로 SSH 서비스 동작 여부를 TCP 3단계 연결 완성을 통해 확인하겠다는 의미(TCP 헤더의 목적지 포트 번호는 22번) - 공격자가 TCP 오픈 스캔을 수행하면 전송 계층에서 SYN 플래그를 생성해 공격 대상자에게 전송 - 공격 대상자가 SSH 서비스를 사용 중이면 ACK/SYN 플래그로 응답이 온다. - 그럼, 공격자는 ACK 플래그로 응답한 뒤 공격 대상자가 회신한 ACK/SYN 플래그를 통해 해당 서비스가 동작중임을 확..
[4주차] 검증세트, 전처리, 과대적합과 과소적합 테스트 세트로 모델 튜닝 로지스틱 회귀로 모델 훈련 및 평가 유방암 데이터를 가져와 훈련세트와 테스트 세트로 나누었다. SGDClassifier 클래스를 이용해 로지스틱 회귀 모델을 훈련했다. fit()에 훈련세트를 넣어 모델을 훈련했다. 그 후, 정확도를 확인해보니 약 83%로 꽤나 정확했다. 서포트 벡터 머신으로 모델 훈련하고 평가하기 SGDClassifier 클래스의 loss 매개변수를 hinge로 바꾸면 선형 서포트 벡터(SVM) 모델이 만들어진다. cf. SVM : 훈련데이터의 클래스를 구분하는 경계선을 찾는 작업 SVM으로 만들고 정확도를 확인해보니 약 94%로 이전 보다는 훨씬 높아졌다. 정확도가 마음에 들지 않을 때 loss 매개변수에 다른 값을 적용할 수 있다. ==> 모델 튜닝 테스트 ..
4장. 전송 계층의 헤더 기능 UDP 헤더 크기 : 8byte(=64bit) - 출발지 포트 번호 항목 : 16bit - 목적지 포트 번호 항목 : 16bit - 길이 항목 : - 오류 검사 항목 :
3장. 네트워크 계층 기반 주요 공격 유형 네트워크 계층 전송 단위 : 패킷 라우터 : 패킷 단위를 처리하는 대표적인 장치 공격 종류 - 랜드 공격 - 티어 드롭 공격 - ICMP 플로딩 공격 - IP 스푸핑 IP 스푸핑 공격 - 출발지 IP 주소를 조작해 자신을 은폐하는 공격 랜드 공격 - IP 스푸핑 공격 변형 - 출발지 IP 주소를 목적지 IP 주소와 동일하게 설정한 뒤 ICMP 요청 패킷을 공격 대상자에게 전송하는 공격 - 출발지, 목적지 IP 주소를 공격 대상자 IP 주소와 동일하게 설정하면 ICMP 응답 패킷을 자신에게 전송하게 되어 인위적인 과부하를 유발하는 Flooding 공격 - 포트번호/IP주소로 전송 계층까지 확장 가능 ===> 운영체제에서 커널 차원에서 목적지, 출발지 IP 주소가 동일한 패킷을 차단해 방어하도록 한다. 티어..
[3주차]데이터 세트 분류, 로지스틱 회귀과 단일층 신경망 관계 유방암 데이터 세트 cancer에는 569개의 샘플과 30개의 특성이 이며, 데이터는 실수 범위의 값이고, 양수이다. 박스 플롯으로 그림을 그려보면 위와 같다. 4, 14, 23, 24번째 값이 다른 값들에 비해 분포가 크다. 4, 14, 23, 24번째 특성의 인덱스를 리스트로 묶어 전달하여 특성을 살펴보니 area와 관련된 특성임을 알 수 있다. 타깃 데이터에는 212개의 음성값과 357개의 양성값이 있다는 것을 알 수 있다. 일반화 성능 : 훈련된 모델의 실전 성능 훈련 데이터 세트, 테스트 세트로 나누는 규칙 1. 테스트 세트보다 훈련 세트가 많아야 한다. 2. 훈련 데이터 세트를 나누기 전 양성, 음성 클래스가 한쪽에 몰리지 않도록 한다. 훈련 세트와 테스트 세트로 나누기 cancer 데이터 셋..
[2주차] 손실함수와 경사하강법의 관계, 선형회귀를 위한 클래스 생성, 퍼셉트론, 아달린, 로지스틱 회귀, 시그모이드 함수, 로지스틱 손실 함수 손실함수와 경사하강법의 관계 손실함수 예상한 값과 실제 타깃값의 차이를 함수로 정의한 것 cf. 비용함수 : 모든 훈련 데이터에 대한 손실 함수의 합 목적함수 : 최적화하기 위한 대상 함수 제곱오차 (타깃값 - 예측값)^2 제곱 오차가 최소가 되면 산점도 그래프를 가장 잘 포현한 직선이 그려진다. 최솟값은 함수의 기울기에 따라 이동하면 알 수 있다. 기울기 구하려면 (타깃값 - 예측값)^2 를 w나 b에 대해 미분하면 된다. => w(가중치)에 대해 제곱 오차를 미분하면 오차 역전파 수식과 결과가 같은 것을 확인할 수 있다. => b(절편)에 대해 제곱 오차를 미분하면 오차 역전파 수식과 결과가 같은 것을 확인할 수 있다. 선형회귀를 위한 클래스 생성 Neuron클래스 __init__ 메소드 __init..