Super Kawaii Cute Cat Kaoani
본문 바로가기
728x90

{Lecture}62

[기계학습] 딥러닝 최적화 - 규제 ( 가중치 감쇠, 조기 멈춤, 데이터 증강) 기계학습 기말고사를 대비하여 정리한 글 딥러닝 최적화 방법 1. 목적함수 개선 2. 효율적인 학습 전략 3. 규제 기법4. 하이퍼파리미터 최적화5. 2차 미분을 이용한 최적화 현대 기계학습의 전략 => 충분히 큰 모델 설계 + 학습 과정에서 여러 규제 기법을 적용한다 규제 규제 기법으로는 가중치 벌칙, 조기 멈츰, 데이터 증강이 있다. 이때 규제는 명시적 규제와 암시적 규제로 나뉜다. 명시적 규제 : 목적함수나 신경망 구조를 직접 수정하는 방식 (가중치 감쇠, 드롭아웃) 암시적 규제 : 간접적으로 영향을 미치는 방식 ( 조기 멈춤, 데이터 증강) 1. 가중치 벌칙 규제를 적용한 목적함수는 다음과 같다. 규제항 R : 훈련집합과 무관하며 단지 매개변수의 크기에 제약을 가하는 .. 2025. 12. 14.
[기계학습] 딥러닝 최적화 - 효율적인 학습 전략 딥러닝 최적화 방법 1. 목적함수 개선 2. 효율적인 학습 전략 3. 규제 기법4. 하이퍼파리미터 최적화5. 2차 미분을 이용한 최적화 효율적인 학습 전략 효율적인 학습 전략에는 데이터 전처리, 가중치 초기화, 모멘텀, 적응적 학습률이 있다. 1. 데이터 전처리 데이터 전처리에서 발생하는 문제점 규모 불일치 (특징마다 규모가 다른 문제) => 규모가 큰 쪽으로 가중치 업데이트가 크게 일어남 (지그재그)모든 특징이 양수인 문제 => 여러 가중치가 뭉치로 증가 또는 감소한다. 가중치 업데이트의 다양성이 훼손된다. 이러한 문제점을 해결하는 방법으로는 정규화가 있다 1-1. 정규화 평균 0 => 모든 특징이 양수인 문제를 해결표준편차 1 => 규모가 불일치 하는 문제를 해결한다. 💡어떤 특징.. 2025. 12. 14.
[컴파일러] 컴파일러 정리 - PDA, LL Parser, LR Parser, Follow, First 컴파일러 기말고사를 대비하여 정리한 글입니다. 1. Pushdown Automata(PDA)를 설명하기Pushdown Automata(PDA)는 문맥자유언어(Context-Free Language, CFL)를 인식하기 위한 계산 모델이다.이는 유한 오토마타(Finite Automata, FA)에 스택(Stack)이라는 추가적인 기억 장치를 결합한 형태이다. 유한 오토마타는 상태만을 이용해 입력을 처리하므로, 입력의 개수를 기억하거나 중첩 구조를 처리할 수 없다. 반면 PDA는 스택을 사용하여 이전 입력에 대한 정보를 저장할 수 있으므로, 괄호의 짝 맞추기나 aⁿbⁿ과 같은 언어를 인식할 수 있다. 형식적으로 PDA는 다음과 같은 7-튜플로 정의된다.Q: 상태의 유한 집합Σ: 입력 알파벳Γ: 스택 .. 2025. 12. 14.
[컴파일러] BNF 정리 BNF (Backus–Naur Form)란 BNF는 프로그래밍 언어의 문법(Grammar) 을 형식적으로 표현하기 위한 표기법(Notation)을 말한다. 컴파일러의 구문 분석(Parsing) 의 근간이 된다. 프로그래밍 언어의 문법 구조를 분명하고 간결하게 표현할 때 주로 사용된다. 1950년대 후반에 존 배커스(John Backus)와 피터 나우어(Peter Naur)가 개발한 방법이라 'Backus-Naur Form'이라 부르게 되었다. BNF 표현 방법 ::= 표현식 BNF 예시 ::= + | - | ::= * | / | ::= ( ) | ::= 0 | 1 | 2 | 3.. 2025. 10. 23.
[컴파일러] 촘스키 언어 계층 정리 - 문법 정리 Chomsky Grammar Hierarchy 문법을 표현 능력(Grammar Power)과 제약(Restrictions)에 따라 네 가지 계층으로 나눈 구조로, 안쪽에서 바깥쪽으로 갈수록 제약이 줄고, 표현 능력이 강해진다. 1. Type-3 Grammar (Regular Grammar, 정규 문법)가장 단순한 문법정규 표현식(Regular Expression)으로 표현 가능유한 오토마타(FA, Finite Automaton)로 인식 가능예: 이메일 형식, 전화번호 패턴 2. Type-2 Grammar (Context-Free Grammar, 문맥 자유 문법)정규 문법보다 강력푸시다운 오토마타(PDA)로 인식 가능프로그래밍 언어 문법 대부분이 여기에 속함 (if-else, 중첩 구조 등)예:.. 2025. 10. 23.
[컴파일러] 컴파일러의 구조 (Front-End와 Back-End 구성과 역할) 컴파일러의 구조 컴파일러는 Front-end (전단부) 와 Back-end (후단부) 로 나뉜다.Front-end → 소스코드의 의미를 분석하고, 중간 표현(IR)을 생성하는 부분Back-end → IR을 최적화하고, 실제 기계어 코드로 변환하는 부분 컴파일러의 컴포넌트 컴파일러의 컴포넌트는 다음과 같이 나눠진다 1. Lexical Analyzer (어휘 분석기)문자 스트림(character stream)을 읽고, 토큰(token)으로 나눔 → a = b + c; → , , , , Token stream2. Syntax Analyzer (구문 분석기)토큰을 문법에 맞게 트리 구조로 분석 → 구문 트리(syntax tree) 생성. 즉, 프로그램의 구조(문법적 계층)를 파악함.Syntax.. 2025. 10. 23.
[컴파일러] NFA -> DFA 변환 Deterministic Finite Automata (DFA)어떤 상황에서도 이동(transition)을 선택할 여지가 없다.→ 즉, 현재 상태와 입력 기호가 주어지면 다음 상태가 단 하나로 결정된다.→ “결정적(Deterministic)”이라는 말은 바로 이 뜻이다. Non-deterministic Finite Automata (NFA)적어도 한 경우에서 다음 상태로 가는 선택지가 여러 개일 수 있다.→ 즉, 같은 상태에서 같은 입력 기호로 여러 개의 전이(transition) 가 가능하거나,→ ε(엡실론) 전이처럼 입력 없이 이동하는 경우가 있을 수 있다.입력 문자열을 받아들인다는 것(accept) 은→ 여러 가능한 경로 중 하나라도 최종 상태(final state)에 도달할 수 있다면 Accept.. 2025. 10. 23.
[컴파일러] 컴파일러란? 컴파일러란? 컴파일러란 무엇일까? 컴파일러는 개발자라면 무조건 들어봤을 용어이다. 컴파일러를 단순히 실행 코드를 만들어주는 프로그램이라고 이때까지 생각했었다. 하지만 컴파일러를 더욱 정확하게 말한다면 다음과 같이 설명할 수 있다. 컴파일러(Compiler)란 개발자가 작성한 고급 언어(C, Java, Python 등) 로 된 프로그램을 컴퓨터가 이해할 수 있는 저급 언어(기계어 또는 어셈블리어) 로 번역(translate) 해주는 프로그램이다. 개발자가 작성한 코드는 그대로는 컴퓨터가 이해하지 못한다. 그래서 컴파일러가 이 코드를 읽고, 구문 분석(syntax analysis) 과 의미 분석(semantic analysis) 등을 거쳐 기계어 코드로 변환한다. 이때 컴파일러는 단순히 코드를 변환.. 2025. 10. 22.
[정보보호] 웹 보안 정리 웹 해킹웹 취약점 스캐너를 통한 정보 수집빠른 시간 내에 다양한 접속 시도를 수행할 수 있다는 장점.스캐너로 확인된 취약점이 실제 보안 문제가 아닌 경우가 많음 프록시 (Web Proxy)를 통한 취약점 분석웹의 구조 파악, 취약점 점검, 웹 해킹 시 웹 프록시 툴 사용.클라이언트에 설치되어 클라이언트의 통제를 받음.클라이언트가 웹 서버와 웹 브라우저 간에 전달되는 모든 HTTP 패킷을 웹 프록시를 통해 확인하고 수정 가능.대표적인 웹 프록시 툴: Burp Suite (http://portswigger.net/burp 에서 무료 버전 다운로드 가능). 서버에서 클라이언트로 전송되는 패킷 변조서버가 클라이언트로 전송하는 패킷의 변수 값을 조작하여 악용 가능.예시: 서버에서 전송한 $A = 20$ 값을 클.. 2025. 10. 18.
728x90