머신러닝 야학 정리
Tansorflow CNN(이미지 분류)
차원
표의 열 VS 포함 관계
-
표의 열 - 칼럼의 관점
- 칼럼(변수) 2개 → 2차원의 좌표 평면 위에 나타낼 수 있음
각 점은 1개의 관측치를 나타냄 - 칼럼(변수) 3개 → 3차원 공간의 한 점으로 표현 됨
- 칼럼의 숫자가 n개 라면 각 데이터는 n차원 공간의 한 점으로 표현
### ⇒ 변수의 개수 = 공간의 차원수
표의 데이터를 공간으로 옮기게 되면 모든 데이터들을 기하학적인 관점으로 바라보고 해석할 수 있게 된다.
⇒ 데이터들간의 거리를 잴 수 있다.
⇒ 데이터들 사이에 가까운 정도를 숫자로 정밀하게 비교할 수 있게 된다.
⇒ **데이터를 공간속에 표현한다는 맥락에서 사용되면 변수의 갯수가 공간의 차원수가 됨**
-
데이터 사이의 포함관계를 바라보는 관점
-
배열의 깊이
⇒ 배열의 깊이 = 차원수
-
⇒ 4차원 공간에 표현되는 관측치
# 관측치 하나를 표로 표현
x1 = np.array([5.1,3.5,1.4,0.2])
print(x1, ndim, x1.shape)
x2 = np.array([4.9, 3.0, 1.4, 0.2])
x3 = np.array([4.7, 3.2, 1.3, 0.2])
⇒ 하나의 배열에 값이 들어가 있는 모양
⇒ 1차원 형태
⇒ 출력 : (4, )
→ 숫자가 1개 들어가있기 때문에 1차원
→ 4개의 요소를 지닌 1차원 배열
# 표는 이 관측치들의 모음으로 만든다.
# 이것을 코드로 표현
iris = np.array([x1,x2,x3])
print(iris.ndim, iris.shape)
⇒ 1차원의 배열 3개를 품고 있는 배열
⇒ 배열의 깊이 : 2 → 2차원 형태
⇒출력 : (3, 4)
⇒ 데이터의 형태를 표현하는 맥락에서 사용하면 배열의 깊이는 차원수가 됨
이미지 파일 하나가 데이터의 관점에서는 관측치 하나다.
# 흑백의 이미지는 데이터 하나가
# 2차원 형태를 가진다.
img1 = np.array([
[ 0, 225],
[225, 0]
])
print(img1.ndim, img1.shape)
⇒ 출력 : (2, 2)
⇒ 가로 2픽셀, 세로 2픽셀로 되어있다.
img2 = np.array([[225, 255], [255, 255]])
img3 = np.array([[0, 0], [0, 0]])
img_set = np.array([img1, img2, img3])
print(img_set.ndim, img_set.shape)
⇒ 이미지들을 모아 이미지셋을 구성
⇒ 3차원 형태
⇒ 출력 : (3, 2, 2)
# 1차원 형태, (3,)
d1 = np.array([1,2,3])
print(d1.ndim, d1.shape)
# 2차원 형태, (5, 3)
d1 = np.array([d1, d1, d1, d1, d1])
print(d2.ndim, d2.shape)
# 3차원 형태, (4, 5, 3)
d3 = np.array([d2, d2, d2, d2])
print(d3.ndim, d3.shape)
# 4차원 형태, (2, 4, 5, 3)
d4 = np.array([d3, d3])
print(d4.ndim, d4.shape)
⇒ 데이터 형태의 맥락에서 ' 배열의 깊이 = 차원수 '
- 1차원, 2차원 등 여러 차원 형태로 구성되어 있는 데이터의 모습 = Tensor
-
데이터 공간의 맥락
차원수 = 변수의 개수
-
데이터 형태의 맥락
차원수 = 배열의 깊이
'머신러닝 > Tensorflow CNN' 카테고리의 다른 글
딥러닝1. Flatten (1) | 2021.01.28 |
---|---|
이미지 데이터 이해 (0) | 2021.01.26 |