분류 전체보기
-
[DL for VS #8] 배치 정규화Machine Learning/Deep Learning for Vision Systems 2023. 4. 17. 03:31
4.9 배치 정규화 입력층에 이미지를 입력하기 위한 데이터의 전처리에서 정규화를 사용했었다.(아래 요약 참고) 4.3.2 데이터 전처리(신경망에 입력되기 전에 이루어지는 것들) 회색조 이미지 변환 – 계산 복잡도를 경감시킬 수 있다. 이미지 크기 조절 – 신경망의 한계점 중 하나는 입력되는 모든 이미지의 크기가 같아야 한다. 데이터 정규화 – 데이터에 포함된 입력 특징(이미지의 경우 픽셀값)의 배율을 조정해서 비슷한 분포를 갖게 함. 데이터 강화 – 데이터 강화를 데이터 전처리로도 활용할 수 있다. 이미 추출된 특징을 정규화하면 은닉층도 마찬가지로 정규화의 도움을 받을 수 있다. '추출된 특징'은 변화가 심하므로 정규화를 통해 신경망의 학습 속도와 유연성을 더욱 개선할 수 있다. 이런 기법을 배치 정규화..
-
C언어 기초#10 구조체와 포인터, 공용체(union), 열거형(enum), typedefProgramming 기초/C Language 2023. 4. 15. 20:28
*구조체(structure)C에서의 자료형은 기본 자료형과 파생 자료형으로 분류할 수 있다. 기본 자료형은 char, int, double 등이 있다. 파생 자료형은 이들 기본 자료형에서 파생된 것으로 배열, 열거형, 구조체, 공용체 등을 들 수 있다. 구조체는 파생 자료형 중에서도 가장 일반적인 구조를 가진다. c언어 공식문서에서는 기본 자료형이라는 공식적인 카테고리가 없다. c언어의 type 체계는 function type과 object type이 있다. (여기서 object type은 object와 다르다.) object type은 아래와 같이 네 가지가 있다(네가지는 서로 배타적인 관계가 아니다.) 1. scalar type(int, char ...)과 pointer type 2. 구조체, 배열 ..
-
[Python 기초 #4] 집합(set), 불(bool), 변수(variable)Programming 기초/Python 2023. 4. 15. 11:07
* set(집합) 자료형 - 요소에 순서가 없다. - 중복을 허용하지 않는다. - 딕셔너리와 비슷하게 인덱싱으로 접근하려면 리스트나 튜플로 변환해야 한다. list(), tuple() s1 = set([1, 2, 3]) # set함수 안에 배열을 넣는다. s2 = {5, 2, 1, 2} s3 = {'Hello'} # 이건 'Hello'를 하나의 요소로 인식한다. s4 = set("hello")# hello를 구성하는 문자 하나하나를 요소로 인식한다. print(type(s3)) print(s1) print(s2) print(s3) print(s4) ------------------------ {1, 2, 3} {1, 2, 5} {'Hello'} {'o', 'h', 'l', 'e'} 리스트 내의 중복된 요..
-
[Python 기초 #3] 튜플(tuple), 딕셔너리(dictionary)Programming 기초/Python 2023. 4. 14. 23:26
* Tuple(튜플) - 리스트는 []으로 둘러싸지만 튜플은 ()으로 둘러싼다. - 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다. - 괄호 생략 가능. - 1개의 요소만을 가질 때는 요소 뒤에 콤마를 반드시 붙여야함. 그 외 나머지는 리스트와 동일히다. t1 = () t2 = (1,) t3 = (1, 2, 3) t4 = 1, 2, 3 t5 = ('a', 'b', ('ab', 'cd') * Dictionary(딕셔너리) - Key와 Value를 한 쌍으로 갖는 자료형. - 연관 배열(Associative array) 또는 해시(Hash)라고 불림 - value값으로 리스트를 쓸 수 있으나 key 값으로 리스트를 쓸 수 없다. dic = {'name' : 'Eric', '..
-
[Python 기초 #2] 리스트 자료형Programming 기초/Python 2023. 4. 14. 17:20
list(리스트) a = [] # 빈 값 b = [1, 2, 3] # 숫자 c = ['Life', 'is', 'too', 'short'] #문자 d = [1, 2, 'Life', 'is'] #숫자 + 문자 e = [1, 2, ['Life', 'is']] # 리스트 안에 리스트 print(e[2][0]) ---------------------------------------- Life 리스트 연산하기 a = [1, 2, 3] b = [4, 5, 6] print(a+b) print(a*3) 리스트 값 수정하기 a = [1, 2, 3] a[2] = 4 print(a) b = ["서울", "인천", "부산"] b[0:2] = ["경기도", "충청도"] print(b) ------------------------..
-
[DL for VS #7] 신경망 하이퍼파라미터 튜닝Machine Learning/Deep Learning for Vision Systems 2023. 4. 13. 23:02
4.5.1 데이터 추가 수집 또는 하이퍼파라미터 튜닝 훈련 데이터에 대한 기존 성능이 납득할만한 수준인지 확인한다. 훈련 데이터 정확도(train_acc)와 검증 데이터 정확도(val_acc) 이렇게 두 가지 지표를 시각화해서 관찰한다. 훈련 데이터에 대한 성능이 낮다면 과소적합의 가능성이 있다. 과소적합은 기존 데이터도 충분히 활용하지 못하는 상황이므로 데이터를 추가 수집할 필요가 없다. 하이퍼파라미터를 조정하거나 기존 훈련 데이터를 클린징(정화)해야 한다. 훈련 데이터에 대한 성능은 괜찮은데 테스트 데이터에 대한 성능이 떨어진다면 일반화 성능이 떨어지는 과적합의 가능성이 있다. 데이터 추가 수집이 유효한 경우다. 데이터 레이블링이 수동작업으로 이루어짐.이미지 한 장 한 장 사람이 직접 보고 레이블링 ..
-
C언어 기초#9 문자열(string)Programming 기초/C Language 2023. 4. 13. 17:29
*문자열(string) 문자열은 “abc”와 같이 큰 따옴표로 표시하고 문자는 ‘a’와 같이 작은 따옴표로 표시한다. “”‘’ 가 없으면 변수의 이름으로 취급된다. ‘\0’은 NULL문자로, 아스키 코드 값이 0인 문자이다. (NULL 문자의 원래 의미는 터미널이나 프린터로 보내지는 NOP(No Operation) 명령어를 의미하였다. NULL 문자는 ‘\0’으로 표현하는데 이것은 아스키 코드에서 값이 0인 코드를 의미하므로 단순히 정수 0으로 쓰기도 한다.) NULL 문자의 필요성 : 컴퓨터는 쓰레기 값 역시 문자로 인식하기 때문에 어디까지가 의미 있는 문자열인지 알지 못한다. 예를 들어 10바이트의 배열을 선언하고 5바이트만 채웠을 때 끝이 지정되어 있지 않으면 나머지 5바이트에는 쓰레기 값이 들어간..
-
C 언어 기초#8 포인터(pointer)Programming 기초/C Language 2023. 4. 13. 16:19
*포인터(pointer)포인터(pointer)는 메모리 주소를 가지고 있는 변수이다.간접 참조(dereferencing, 역참조; indirection) 연산자 * : 만약 p가 변수 I를 가리킨다고 하면 *p는 변수 I와 같다. *p는 p가 가리키는 위치에 있는 데이터를 가져오라는 의미이다. 만약 p가 int형 포인터이면 p가 가리키는 위치에 정수가 있다고 가정하고 4바이트를 읽어 들인다. 만약 double형 포인터이면 p가 가리키는 위치에 실수가 있다고 생각하고 8바이트를 읽어 들이는 것이다. 이것이 포인터의 타입이 필요한 이유이다.&(앰퍼샌드) - 주소 연산자(address-of oprerator), 변수의 주소를 구하여 포인터에 대입할 때 사용*(star) - 포인터를 통하여 변수를 간접 참조할 ..