티스토리 뷰

 

Neural Network Implementation in Python - Forward prop in a single layer

 

단일 레이어 신경망의 순방향 전파(Forward Propagation) 구현에 대해 신경망의 입력에서 출력까지의 계산 과정을 이해하는 것이다.


TensorFlow Implementation - Data in TensorFlow 

 

NumPy와 TensorFlow에서 데이터가 어떻게 표현되는지 알아보는 것은 신경망을 제대로 구현하는 데 필수적이다. 특히, 이 두 프레임워크에서 벡터와 행렬을 다루는 방식에 대한 차이를 이해해야 한다. (NumPy와 텐서플로우에서 데이터가 표현되는 방식 간에는 약간의 불일치가 존재함)

 

먼저 TensorFlow가 데이터를 나타내는 방법을 살펴보겠다.

 

이전에 봤던 coffee roasting 예제에 다음과 같은 데이터 세트가 있다고 가정해 보겠다. 

 

\(x\)를 다음과 같이 표현할때, 왜 여기에 이중 대괄호가 있는 거죠? 이거에 대해서 알아보자.

 

우선, NumPy가 벡터와 행렬을 저장하는 방법을 알아야한다.

 

NumPy는 수치 연산을 쉽게 처리할 수 있도록 설계된 Python의 라이브러리로,

데이터를 1차원 배열(벡터)과 2차원 배열(행렬)로 저장할 수 있다.

 

 

 

TensorFlow는 내부적으로 데이터를 tensor 형식으로 처리하지만, 이를 NumPy 배열로 변환할 수 있다. 예를 들어, a1이라는 tensor를 NumPy 배열로 변환하고 싶다면, a1.numpy()를 사용하면 된다. 이렇게 하면 TensorFlow 텐서가 NumPy 배열로 변환되어, NumPy의 기능을 사용할 수 있게 된다.

 

두 번째 레이어의 출력을 살펴보겠다. 두 번째 레이어는 하나의 단위(unit)로 구성되어 있고, 시그모이드 활성화 함수가 적용된다. 이 레이어를 통과한 후 a2라는 값이 계산되는데, a2는 1x1 행렬이다. 이는 행과 열이 각각 하나씩 있는 2D 배열이다. 예를 들어, a2의 출력이 tf.tensor([0.8])이라면, 이는 1x1 행렬이며, 32비트 부동소수점(float32) 형식으로 저장된다.

 

마찬가지로, a2도 NumPy 배열로 변환할 수 있다. 

 

TensorFlow와 NumPy의 데이터 표현 차이

TensorFlow는 데이터를 텐서로 처리하고, NumPy는 배열로 처리한다. 이 두 라이브러리는 내부적으로 데이터를 처리하는 방식이 조금 다르지만, 서로 데이터를 쉽게 변환할 수 있다. 예를 들어, NumPy 배열을 TensorFlow로 전달하면, TensorFlow는 이를 자동으로 텐서로 변환한다. 반대로, TensorFlow 텐서를 NumPy 배열로 변환할 수도 있다. 이 과정은 두 라이브러리 간의 호환성을 높여준다.

 

TensorFlow는 특히 대규모 데이터 세트를 처리할 때 더 효율적이기 때문에, 데이터는 주로 텐서로 표현된다. NumPy에서 데이터를 로드하거나 처리한 후 TensorFlow로 전달하는 경우, 이 변환 과정을 이해하고 사용하는 것이 중요하다.


TensorFlow Implementation - Building a neural network

 

Python에서 신경망의 단일 밀집 레이어(Dense Layer)를 구현하는 방법에 대해 알아보자.

 

밀도 함수를 구현하기 위해서는,

이전 계층의 활성화 값과 주어진 계층의 뉴런에 대한 매개 변수 w와 b를 입력으로 받도록 정의해야한다. 

 

밀집 함수각 레이어의 활성화 값을 계산하는 역할을 한다. 그럼 최종적으로 이 함수는 이전 계층의 활성화 값을 입력하여 현재 계층의 활성화 값을 출력한다.

 

이 과정을 일반화하여 신경망의 여러 레이어순차적으로 연결하는 방법을 구현할 수 있습니다.

각 레이어의 출력은 다음 레이어의 입력이 된다.


Practice quiz - Neural network implementation in Python

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함