📒 Developing Repository

🖥️ Deep Learning

[DL] Activation Function - 활성화 함수

Activation Function (활성화 함수)Activation Function(활성화 함수)란? 신경망에서 각 Node & Neuron에서 Input Signal(입력신호)의 총합을 Output Signal(출력 신호)로 변환하는 함수입니다.또한 Nerual Network(신경망)의 Non-Linear 문제를 해결하게 해줍니다.비선형 문제: 입력, 출력 변수간의 관계가 선형이 아닌 문제를 의미합니다. 입력 변수가 작은 변화가 출력에 비례하지 않거나, 예측하기 어려운 변화를 일으키는 경우에 해당Activation Function(활성화 함수)는 임계값을 기준으로 출력이 봐뀝니다, 이런 함수를 Step Function(계산 함수)라고 합니다.그래서 Perceptron(퍼셉트론)에서 Activation..

⚙️ Computer Architecture

[Computer Architecture] Processor, Computer System Organization

계속 한번 Data 저장장치, Processor, 컴퓨터의 구성요소, Instruction Set Architecture (ISA - 명령어 집합)에 데하여 알아보겠습니다. Safe Place for Data 휘발성 주기억장치 휘발성 주기억장치는 전원을 끄면 명령어와 데이터가 사라지는 메모리를 말합니다. 예로는 DRAM(Dynamic Random Access Memory)이 있습니다. 이 메모리는 데이터 접근 속도가 빠르지만 전원이 끊어지면 데이터가 사라집니다. 비휘발성 보조 메모리 비휘발성 보조 메모리는 전원이 끊어져도 데이터를 유지할 수 있는 저장 장치를 의미합니다. 자기 디스크: 하드 디스크 드라이브(HDD)와 같은 장치로, 자기 데이터를 물리적으로 저장합니다. 플래시 메모리: 솔리드 스테이트 드라..

🖥️ Deep Learning

[DL] Feed-forward Network (피드-포워드 네트워크)

Feed-Forward Network Feed-Forward Networks는 가장 기본적인 인공 신경망 구조중 하나로, Input Layer(입력층)에서 Output Layer(출력층)으로 데이터가 순방향으로 흐르는 구조를 의미합니다. 여기서 Data는 각 Layer(층)을 지날 때마다 가중치에 의해 변환되고, Activation Function(활성화 함수)를 통해 다음 Layer(층)으로 전달됩니다 이러한 네트워크는 순환 연결이나 복잡한 Feedback 루프가 없어서 계산이 비교적 간단하고, 다양한 문제에 적용될 수 있습니다. 정리하자면, 데이터가 네트워크를 통해 한 방향으로만 흐른다는 것을 의미합니다. 입력 데이터는 Input Layer(입력층)에서 시작하여 Hidden Layer(은닉층)을 거쳐..

⚙️ Computer Architecture

[Computer Architecture] What is Computer Architecture?

Computer Architecture Hardware / Software Interface 프로그램을 기계어로 변환하는 방법: 프로그래밍 언어로 작성된 소스 코드는 컴파일러나 인터프리터를 통해 기계어, 즉 CPU가 직접 이해하고 실행할 수 있는 기계 코드(machine code)로 변환됩니다. 이 과정을 통해 고수준 언어의 추상적 명령들이 하드웨어가 이해할 수 있는 구체적인 지시로 변환됩니다. 하드웨어가 기계 코드를 실행하는 방법: CPU는 기계 코드의 명령들을 해석하고 실행합니다. 이 과정에는 명령어를 인출(fetch), 해석(decode), 실행(execute)하는 단계가 포함됩니다. CPU 내부의 여러 구성 요소가 협력하여 데이터를 처리하고 결과를 생성합니다. What is Computer? 단순..

🗺️ Design Pattern

[Design Pattern] Abstract Factory Pattern - 추상 팩토리 패턴

Abstract Factory Pattern 추상 팩토리 패턴(Abstract Factory Pattern)은 관련성이 있는 여러 종류의 객체를 생성하기 위한 인터페이스를 제공하는 생성 디자인 패턴입니다. 이 패턴은 구체적인 클래스에 대한 정보 없이도 서로 연관되거나 의존적인 객체의 군을 생성할 수 있도록 해줍니다. 또한, 팩토리 자체를 추상화함으로써 객체들을 쉽게 생성할 수 있습니다. 주요 특징은 다음과 같습니다: 인터페이스 제공: 추상 팩토리는 객체를 생성하기 위한 인터페이스를 제공합니다. 이 인터페이스는 관련된 객체들의 생성을 추상화하고, 클라이언트에게는 객체의 구체적인 클래스에 대한 정보를 숨깁니다. 서로 연관된 객체 생성: 추상 팩토리 패턴은 서로 연관된 객체들의 군을 생성합니다. 예를 들어, ..

🗺️ Design Pattern

[Design Pattern] Factory Method Pattern - 팩토리 메서드 패턴

Factory Method Pattern 팩토리 메서드 패턴은 인스턴스를 생성하는 방법을 상위 클래스 측에서 결정하지만, 구체적인 인스턴스의 유형까지는 결정하지 않는 디자인 패턴입니다. 대신, 구체적인 내용은 모두 하위 클래스 측에서 수행됩니다. 이를 통해 인스턴스 생성을 위한 골격과 실제 인스턴스 생성의 클래스를 분리하여 생각할 수 있습니다. 상위 클래스에서 인스턴스 생성 방법 결정: 상위 클래스에서는 인스턴스를 생성하기 위한 추상 메서드(팩토리 메서드)를 정의합니다. 이 메서드는 실제로 어떤 유형의 인스턴스를 생성할지 결정하지 않고, 그 결정은 하위 클래스에 위임됩니다. 하위 클래스에서 구체적인 내용 수행: 실제 인스턴스 생성에 관련된 구체적인 로직은 하위 클래스에서 수행됩니다. 각 하위 클래스는 상..

🗺️ Design Pattern

[Design Pattern] Factory Pattern - 팩토리 패턴

Creation Design Pattern (생성 디자인 패턴) 생성 디자인 패턴은 객체 생성에 관련된 디자인 패턴을 말합니다. 이 패턴들은 객체의 생성 과정을 캡슐화하여, 객체 생성을 더 유연하게 만들어 줍니다. 주로 객체 생성 로직이 단순하지 않거나, 객체 생성과 관련된 정보를 캡슐화하여, 시스템의 다른 부분과의 의존성을 줄이는 데 유용합니다. Factory Pattern (팩토리 패턴) 팩토리 패턴은 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스의 인스턴스를 생성할지는 서브클래스가 결정하게 합니다. 이를 통해 객체 생성을 위한 코드와 사용을 위한 코드의 분리가 가능해집니다. 팩토리 패턴은 크게 세 가지로 나뉩니다. Simple Factory (단순 팩토리) 단순 팩토리는 팩토리 메서드를 ..

🖥️ Deep Learning

[DL] 단순한 Layer 구현해보기

이번글에서는 단순한 Layer 부터 한번 구현해 보겠습니다. 앞의 글에서본 계산 그래프의 곱셈 노드를 'MultiLayer', 덧셈 노드를 'AddLayer'라는 이름으로 구현합니다. 곱셈 계층 모든 계층은 forward()와 backward()라는 공통의 Method(인터페이스)를 갖도록 구현합니다. forward()는 Forward Propagation(순전파), backward()는 Back propagation(역전파)를 처리합니다. 한번 구현해 보겠습니다. # coding: utf-8 class MulLayer: def __init__(self): self.x = None self.y = None # x와 y를 인수라 받고 두 값을 곱해서 반환 def forward(self, x, y): sel..

🗺️ Design Pattern

[Design Pattern] Object-Oriented Programming (OOP)

Object-Oriented Programming (객체지향 프로그래밍, OOP)의 이해 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 실세계의 사물이나 개념을 객체로 모델링하여 소프트웨어를 개발하는 프로그래밍 패러다임입니다. 이 접근 방식은 데이터(속성)와 그 데이터를 처리하는 데 필요한 기능(함수 또는 메소드)을 하나의 단위로 묶어서 생각합니다. 예를 들어서 Car라는 객체가 있을때? 속성: fuel: 차량의 연료 양, speed: 차량의 현재 속도, steering wheel: 핸들의 위치, coordinate: 차량의 현재 위치 함수: accelerate(): 차량의 속도를 증가시킵니다. takeLeft(): 차량을 왼쪽으로 조향합니다. takeRight(): ..

🗺️ Design Pattern

[Design Pattern] Unified Modeling Language (UML)

What is UML? UML(Unified Modeling Language, 통합 모델링 언어)는 시스템의 구조와 동작을 시각화하고, 사양(specification)을 문서화하는 데 사용되는 표준화된 모델링 언어입니다. 시스템을 시각화 하거나 시스템의 사양, 설계를 문서화 하기 위한 표현 방법입니다. 통합 모델링 언어는 객체 지향 프로그래밍 소프트웨어 집얍 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화할 때 사용합니다. 일반적으로 UML의 범위는 매우 넓지만, 여기서는 클래스 다이어그램 및 시퀀스 다이어그램에 대해서만 설명해 보겠습니다. Code Pattern들을 표현할 때도 유용합니다. Class Diagram: 클래스와 계층 관계 클래스 다이어그램은 시스템의 정적 구조를 나타내는 UML 구조..

Bigbread1129
'분류 전체보기' 카테고리의 글 목록 (17 Page)