본문 바로가기

전체 글311

[Class] 1. Class - 객체지향 프로그래밍 OOP 4가지 특징 ​ 1. Class 1-1. 클래스? C++ 에서 클래스는 구조체가 확장된 것으로 이해할 수 있습니다. 즉, 사용자가 정의할 수 있는 일종의 객체 타입이기도 합니다. 구조체와 클래스의 차이는 기본 접근 제어 차이일 뿐, 나머지는 비슷합니다. 클래스의 멤버 변수를 property, 멤버함수를 method라고 합니다. 객체 지향 프로그래밍(OOP, Object-Oriented Programming) 모든 데이터를 객체(object)로 취급하며, 객체가 프로그래밍의 중심이 됩니다. 위에 말했던 property는 객체의 상태(state)를, method는 객체의 행동(behavior)를 구체화 합니다. 이와 같은 객체를 만들어내기 위한 틀이 "클래스(Class)"입니다. OOP 특징 추상화(abstraction.. 2019. 10. 9.
[Regularization] 규제, 모델 일반화능력 향상, Model generalization 1. 규제(Regularization)의 필요성 신경망이 몇 개의 hidden layer와 각 layer에 몇 개의 node를 가져야 할 지 일일이 정해줄 수 없다. 따라서, 충분히 큰 용량의 신경망 구조를 설계 후, 학습 과정에서 여러 규제 기법을 적용하는 방법을 구사한다. 2. 규제의 정의 데이터 원천에 기본적으로 내재한 정보를 사전지식(prior knowledge)라 한다. 티호노프의 규제 기법은 smooth function을 이용해서 이 사전지식을 유지하면서(가까운 데이터는 비교적 가깝게 매핑된다.) 규제가 일어난다고 가정한다. $$ J(\theta) = J(\theta) + \lambda R(\theta) $$ Ian Goodfellow, 2016는 규제에 대해 다음과 같이 말한다. 일반화 오류.. 2019. 10. 7.
13460 구슬 탈출 2 삼성 SW 역량 문제. 방향이 4방향이니까, 한 방향에 대해서 깊히 생각해보고 구현하면 나머지는 비슷한 방법이다. 그래서 코드도 비슷하지만, 길어진 코드가 되었다. 총평 - 모든 경우의 수를 세는 dfs는 잘 구현했다. - dfs 기저조건에서, 최솟값을 구하는 방법을 이제는 낯설어 하지 말자. - 결국, 시뮬레이션의 디테일한 구성사항을 논리적 오류없이 구현해야하는 것이 중요했다. - 반례들을 몇 십 차례 적용해 본 결과로 논리적 허점을 찾고, 수정하여 답을 얻었다. - 문제였던 곳은, 빨간공과 파란공이 같은 선 상에 있을 때, 움직인 후 겹치지 않게 처리하는 부분이었다. 이 부분을 알고리즘 처음 짤 때부터, 신중히 생각하고 만들었으면, 더 좋았을 것 같다. #include int N, M; char a[.. 2019. 10. 6.
[CSS] 배치, 레이아웃 설계, float 5. Element가 배치되는 방법(CSS layout) Layout = 엘리먼트를 화면에 배치하는 것 = Rendering 과정 = 배치 display(block, inline, inline-block) block : 위에서 아래로, inline : 좌에서 우로 흐른다. position(static, absolute, relative, fixed) float(left, right) 블록으로 쌓이는 엘리먼트 display: block ​ div, p 등 대부분 엘리먼트 옆으로 흐르는 엘리먼트 display: inline ​ span, a(링크), strong(강조) 좀 다르게 배치시키기 (position 속성) static position 속성은 기본 static이다. 그냥 순서대로 배치된다. absol.. 2019. 10. 5.
[CSS] 기초 1. CSS CSS선언 방식 style을 HTML에 적용하는 방법 inline : html 태그 안에다가 삽입, 같은 속성을 추가하려 할 때 다른 방법보다 우선 적용된다. inline이 가장 먼저 반응한다! internal : style 태그로 지정하기. head안에 바로 넣는다. 별도의 css파일을 관리하지 않아도 된다. 브라우저가 요청을 보내지 않는다. 구조와 스타일이 섞여있어서, 유지, 보수, 관리가 어렵다. external : 외부파일(.css)로 지정하기. main.css internal과 external은 우선순위가 동등하다. 겹치는 선언이 있을 경우 나중에 선언된 속성이 반영된다. selector(선택자) property value { }는 오브젝트를 표현함. element.stype int.. 2019. 10. 5.
[HTML] 구조설계 3) HTML 구조설계 Company Name Home Home About Map AboutUs Lorem ipsum dolor sit amet, What we do Lorem ipsum dolor sit amet, Contact us Lorem ipsum dolor sit amet, Copyright @codesquad class 객체 : 비슷한 스타일을 함께 표현 하나의 HTML 문서 안에서 중복사용 가능 하나의 태그에 여러개의 다른 class 이름을 공백을 기준으로 나열할 수 있다. 홈페이지 전체적인 스타일을 일관성 있게 지정하기 위해, class의 사용이 필수적이다. id : identifier 고유한 하나의 객체, 객체 관리, 고유한 영역을 표시, 검색시 id를 가지고 쉽게 찾을 수 있음, 클래.. 2019. 10. 5.
[HTML] 기초 1. HTML Tags tag 종류 (의미에 맞추어 사용해야 한다.) 링크 이미지 목록 제목 google - html tag list 검색. anchor 태그, img, ul/li, heading, p 태그 등이 자주 이용됨 div 태그는 특별히 block 엘리먼트라고 하고, 일반적인 영역을 표현할 때 가장 많이 사용한다. 2. HTML Layout 태그 레이아웃은 '배치'를 의미하고, HTML 태그로 감싸진 각 정보요소를 화면상의 특정 공간에 위치하도록 결정 상단 header home news sports logout Today's weather luck Hello Here are some fruits. apple banana melon orange [출처 - 부스트코스 웹 프로그래밍] https://.. 2019. 10. 5.
[GAN for Data Augmentation] DAGAN, 2018 DAGAN, 2018 Antreas Antoniou et al., arXiv [stat.ML], 2018 Data Augmentation GAN Abstract (문제) Data augmentation은 모델의 일반화에 기여하는 좋은 수단이지만, 기존의 Data augmentation 은 그럴듯한 대체 데이터에 한정되어 데이터를 증식했다. (단순 선형 변환 등) (해결) DAGAN을 이용하면, 한 소스 도메인으로 부터 다른 클래스의 데이터를 생성해낼 수 있다. 데이터를 생성함에 있어 클래스에 구애받지 않기 때문에, 보지 못했던 클래스에도 적용할 수 있다. 또한, Matching Networks 같은 few-shot learning에 DAGAN을 적용함으로써, 다양한 데이터들에 대해 성능 향상을 할 수 있.. 2019. 10. 5.
Tensorflow, CUDA, cuDNN, nvidia GTX 설치(GPU셋팅) + pytorch (Windows 10) 딥러닝 수업을 들으며, 과제를 해결하기 위해 노트북에 tensorflow-gpu 환경설정을 해보았습니다. GTX 1050 달린 노트북인데, 애매한 사양이라 쓰기도 번거롭지 싶지만 내 노트북 무게를 늘린 장본인이라 생각하면.. 뽕을 뽑아야 겠다고 생각하여 설치를 하게 되었습니다. 제가 설치한 환경은 다음과 같습니다. 운영체제 Windows 10 그래픽 드라이버 Nvidia driver 431.86 C환경에서 GPU 지원프로그램 CUDA 9.0 딥러닝 지원 라이브러리(CUDA전용) cuDNN 7.0.5 언어 python 3.6.5 딥러닝 라이브러리 tensorflow-gpu 1.12 가상환경 virtualenv 아나콘다 깔기 싫어서 사용안했습니다. 물론 여기에 pytorch 혹은 keras 설치도 가능합니다.. 2019. 10. 1.
16236 아기상어 시뮬레이션 문제를 해결해보자. 맵이 주어지고, 탐색을 할 경우에 dfs를 쓸 것인지, bfs를 쓸 것인지 고민이 된다. bfs가 dfs를 아우르는 개념이라서 보통 bfs를 쓰면 되는데, 특히 최단경로 문제(가중치가 없을 때)일 때는 bfs를 써야한다. 이 때, visited[][] 대신, dist[][]를 이용하면서 최단경로도 저장하고, 방문했는지도 체크할 수 있다. 처음에 문제를 이해하느라, 시간을 많이 썼지만 차근차근 이해하고, 배운 개념을 써먹으면 문제가 풀린다. 시간복잡도는 모든 물고기 O(V)에 대해 한번 잡아먹을 때마다 다음 잡아먹을 물고기 모두를 탐색해야 하므로 O(|V| + |E|)가 걸린다. O((20 x 20) x (20 x 20 + 19 x 20 x 2) ) = 464,000이 걸린다.. 2019. 9. 29.
728x90