본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다

AI/Deep learning from Scratch16

[머신러닝, 딥러닝] 신경망 (2) - 다차원 배열 계단 함수, 시그모이드와 ReLU에 이어 넘어가기 전 행렬에 대한 개념을 짚고 넘어가 보고자 합니다. 행렬은 행과 열로 이루어진 수를 의미합니다. 가로가 행, 세로가 열인데 기존의 배열의 형태와 유사함을 알 수 있습니다. 배열은 단순히 숫자를 나열한 형태이지만 가장 간단한 한 줄에 숫자를 나열한 배열도 하나의 행과 하나의 열을 가지는 행렬이라고 부를 수 있습니다. 만약 1, 2, 3, 4라는 배열이 있다면 우리는 이것을 다차원 배열로 쉽게 변환할 수 있습니다. # 1차원 A = [1,2,3,4] # 2차원 B = ([[1,2], [3,4]]) 개념적인 부분은 기본적인 수학이니 넘어가고 이제 계산에 대해 알아보겠습니다. 예를 들어 2 x 2 행렬 곱 연산을 한다고 할 때 같은 크기의 행렬을 연산하면 결과도.. 2023. 1. 21.
[머신러닝, 딥러닝] 신경망 (1) - 활성화 함수 (계단함수, 시그모이드, ReLU) 이전에 퍼셉트론에 대해 다뤄보았습니다. 퍼셉트론은 논리회로였습니다. 수학으로 따지면 덧셈, 뺄셈 같은 것이죠. 그러나 우리는 덧셈과 뺄셈을 활용하여 문제를 해결하고 때론 만들곤 합니다. 그렇다면 퍼셉트론이라는 논리회로도 더하기처럼 활용을 해야 합니다. 그리고 그 활용처가 바로 신경망입니다. 신경망이 퍼셉트론을 가지고 운영하는 것이라기 보단 퍼셉트론의 틀을 가지고 간다는 것이 알맞은 표현이겠네요. 신경망은 크게 3개의 층으로 나뉩니다. 입력층, 은닉층, 출력층이 있습니다. 앞선 퍼셉트론에서는 입력과 출력층 밖에 없었습니다. 가중치는 그저 입력과 출력 사이에 들어가는 하나의 요소였을 뿐이었지만, 신경망에서는 은닉층에서 가중치를 고려한 계산이 이루어집니다. 그러나 은닉층은 말그대로 '은닉'이기에 실제로 보이는.. 2023. 1. 4.
[머신러닝, 딥러닝] 퍼셉트론 퍼셉트론이란 하나의 알고리즘이자 논리회로입니다. 퍼셉트론이란 후에 나오는 신경망을 배우는 데 있어서 기원이 되기에 잘 알아두시면 좋을 것 같습니다. 흔히 기계적인 신호로 접근해서 봤을 때 trur, false를 1과 0으로 치환해서 생각합니다. 퍼셉트론이란 다수의 신호를 입력받아 하나의 신호를 출력하는 것입니다. 그리고 출력되는 하나의 신호가 바로 흐른다/ 흐르지 않는다의 true, false 형태입니다. 위 그림이 퍼셉트론의 예시입니다. 보이시는 바와 같이 x1, x2는 우리가 입력하는 값이고 y는 출력되는 값입니다. 그리고 w는 가중치이며 당연히 가중치가 클수록 중요한 신호라는 뜻입니다. 가중치는 거기에 해당하는 입력값과 곱해지고 가중치와 입력값이 곱해진 것을 x1, x2, x3... 순으로 모두 더.. 2023. 1. 1.
[머신 러닝, 딥러닝] 파이썬 기초 1. 리스트 2. 딕셔너리 3. 함수 4. 클래스 5. 넘파이 6. matplotlib 1. 리스트 리스트란 데이터의 배열을 의미합니다. 그러나 예를 들어 c나 자바에서는 배열과 리스트라는 것을 따로 해석했습니다. 배열은 그냥 말 그대로 숫자 혹은 문자의 배열 (문자면 문자열) 이고 리스트도 의미가 일맥상통하긴 하지만 이 둘의 가장 큰 차이점은 편의성이라고 할 수 있습니다. 예를 들어 배열을 출력하려면 for문을 거쳐 하나씩 인덱스 수를 늘리면서 출력하거나 특정 인덱스들만 출력하려면 인덱스 번호를 일일이 언급하여야 합니다. 그러나 리스트는 이러한 문제들을 해결해주는 기능들이 존재합니다. 파이썬에서는 앞선 두 언어와 같이 배열이라는 개념이 따로 존재하지는 않고 리스트라는 개념 하나로 퉁치는 것으로 보입니다.. 2023. 1. 1.