[STUDY] 5월 1주차 - 선형대수/파이썬(+Numpy)

[선형대수]

 행렬 벡터를 통해 표현되는 선형 방정식 선형 함수를 다루는 수학의 분야

 

    1. 내적(스칼라곱) : 각각의 성분끼리 곱을 모두 더하는
      • 머신 러닝에서 내적은 필요한 것일까?
        • 벡터가 이루는 각을 성분 값들로 부터 구할 있다


 

  1. 행렬
    1. 속성
      • 영행렬
      • 정방행렬
      • 대각성분, 대각행렬, 단위행렬
      • 정칙행렬 : 역행렬이 존재하는 행렬
      • 역행렬
      • 전치행렬, 대칭행렬
      1. 스칼라곱
      2. 행렬


  • 결합 법칙이 성립한다.
  • 분배 법칙이 성립한다.
  • 행렬 곱의 역행렬 : AB역행렬 = (B역행렬)X(A역행렬)

 

 

[파이썬]

  • 인터프리트 언어

 

  1. 데이터형
    1. 문자열형(str)
      • 문자열은 '+' 연결할 있고 '*' 반복할 있다.
    1. 숫자형(int, float)
    2. 부울형(bool)
    3. 변수
      • 변수의 형태는 변수가 정의될 정해지며 모든 형의 값을 대입할 있다.
      • 어떤 값도 들어있지 않은 상태로 정의할 때는 'None' 사용한다.
      • 이미 정의 변수에 전혀 다른 형의 값을 대입하면 오류 발생할 있음

 

  1. 데이터 구조
    1. 리스트(list)
      • '배열' 유사한 성질을 가진 데이터형
      • 리스트의 요소의 형을 반드시 일치시키지 않아도 된다.
    2. 딕셔너리(dict)
      • (key) (value) 쌍으로 데이터를 정의한다.

 

  1. 기본 구문
    1. if : if-elif-else
    2. while : 조건에 따라 반복 실행
    3. for : 횟수에 따라 반복 실행
    4. 함수 : def 키워드 사용
    5. 클래스 : class 키워드 사용
    6. 라이브러리
      • import 라이브러리명 as 별칭
      • from 라이브러리명 import 메서드명
        • 메서드 이름 앞에 아무것도 붙이지 않고 사용할 있다

: math.sin(a) -> sin(a)

  • 라이브러리에서 제공하는 모든 메서들을 임포트하려면

: from import *

 

  1. Numpy
    • 수치계산에 사용되는 파이썬 라이브러리
    • import numpy as np

 

  1. Numpy  배열
    • I = np.array( [ [1,0] , [0,1] ] )
    • 선형대수를 비롯한 여러 수치계산을 효율적으로 구현할 있음

 

  1. 벡터 행렬 계산
    • 벡터의 : A + B
    • 벡터의 요소곱 : A * B
    • 벡터의 내적 : np.dot(A, B)
    • 행렬 : A + B
    • 행렬 요소곱 : A * B
    • 행렬의 : np.dot(A, B)

 

  1. 다차원 배열 생성
    • 성분이 모두 0 배열 : np.zeros(성분의 )
    • 성분이 모두 1 배열 : np.ones(성분의 )
    • 일정 범위의 수를 포함하는 배열
      • np.arange(시작값, 끝값, 간격)
      • np.arange(4) = array( [0,1,2,3] )
      • np.arange(4, 10) = array( [4, 5, 6, 7, 8, 9] )
      • np.arange(4, 10, 3) = array( [4, 7] )
    • n X m 차원 배열로 바꾸기 : reshape(n, m)
      • B = np.arange(1, 7).reshape(2, 3)

   = array( [ [1, 2, 3],

 [4, 5, 6] ] )

 

  1. 슬라이스
    • 배열의 성분이나 배열의 일구 구하기
    • 배열의 일부 구하기a[ 인덱스 : 마지막인덱스 + 1]
      • a[1:5] = array( [1, 2, 3, 4] )
      • a[:5] = array( [0, 1, 2, 3, 4] ) : 인덱스 생략시 0부터
      • a[1:5:2] = array( [1,3] ) : 세번째 인수로 간격 설정 가능
      • a[::-1] = array( [9, 8, 6, 5, 4, 3, 2, 1, 0] ) : 본래의 배열을 거꾸로 반환
  2. 브로드캐스트
    • Numpy에서는 서로 다른 배열끼리도 계산 가능
    • 차원이 작은 쪽이 차원이 쪽에 크기를 맞춘 후에 계산됨


 

  1. 딥러닝을 위한 라이브러리
    1. 텐서플로우
      • 모델을 수식에 따라 구현할 있어서 직관적이다.
      • 모델 일부틑 이미 메서드로 만들어져 있다.
      • 모델 학습 데이터를 가공하는 처리도 메서드로 만들어져 있다.
    2. 케라스
      • 텐서플로우를 래핑한 라이브러리
      • 모델 설계할 개발자가 수식에 맞춰 구현해야 경우에 대해서도 메서드가 마련되어 있음
    3. 테아노(Theano)
      • 수치 계산 속도를 높여주는 파이썬 라이브러리
      • 실행 C언어 코드가 생성되고 컴파일되므로 실행 속도가 빠르다
      • 자동 미분 가능
      • 벡터나 행렬, 스칼라를 나타내는 변수는 모두 '심볼'이라는 것으로 취급

 


  Comments,     Trackbacks
최근 작성 글
최근 작성 댓글
최근 작성 트랙백
프로필
공지사항
글 보관함
캘린더
«   2024/05   »
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
TODAY TOTAL