skinOptions.hljs
[deeplearning] 신경망의 이해 - 퍼셉트론, 다층 퍼셉트론
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 퍼셉트론 신경망을 이루는 가장 기본 단위 퍼셉트론 하나로 해결되지 않던 XOR 문제를 은닉층을 만들어 해결하였다. 인간의 뇌는 치밀하게 연결된 약 1,000억 개의 뉴런으로 이루어져 있다. 우리 몸 안에 있는 수많은 뉴런은 서로 긴밀히 연결되어 신경 말단에서부터 뇌에 이르기까지 곳곳에서 자신의 역할을 수행한다. 이처럼 복잡하고 어려운 조합의 결과가 바로 우리의 '생각'이다. 이러한 뉴런과 비슷한 매커니즘을 사용한다는 상상과 함께 출발한 연구가 바로 인공 신경망(Artificial Neural Network) 연구이다. 뉴런과 뉴런이 새로운 연결을 만들기도 하고 필요에 따라 위치를 바꾸는 것처럼, 여러 층의 퍼셉트..
[알고리즘] 8-Puzzle (8 퍼즐) BFS, DFS 구현 / Python 파이썬
·
python/자료구조 & 알고리즘
문제 해결이란? 초기 상태에서 목표상태에 도달하는 과정이다. 8-Puzzle 타일을 1부터 8까지 순서대로 배치하는 게임 • 상태(state): Location of tiles: 8개의 타일의 각각의 위치와 빈칸의 위치 • 동작(action): Move blank Left, Right, up, down: 빈칸으로 왼쪽, 오른쪽, 위, 아래 이동 • 목표 도달 확인(goal test): 주어진 목표상태에 도달하였는지 확인 • 경로 비용(path cost): 한번 action할 때마다 1씩 증가 (경로의 수) 상태공간 그래프 인공지능에서는 최적의 해를 찾기 위해, 각 동작에 따른 상태 변화를 그래프로 나타내어 해결한다. 이러한 문제 해결과정에 있어서 우리는 다음과 같은 탐색 방법을 찾아볼 수 있다. 그래프 ..
백준 / 2869번 달팽이는 올라가고 싶다 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 2869번 달팽이는 올라가고 싶다 문제 사이트: https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B answer: answer = (A - B) * day day += 1 print(day) 두번 째 답안 ( 소숫점 고려 x, 오답) A, B , V = list(map(int,input().split()))..
백준 / 2292번 벌집 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 2292번 문제 사이트: https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하..
[기초] 객체와 클래스 / Python 파이썬
·
python/기초
참고 서적 컴퓨팅 사고를 위한 파이썬 한선관, 김태령 저 | 생능출판사 | 2022년 01월 03일 객체(Object)와 클래스(Class) 클래스는 객체의 기본 틀이 되는 속성이다. 예를 들어서 마커 펜을 생산하는 공장이 있다고 하자, 마커 펜을 만들어내는 공장의 기계를 클래스라고 하고 각각 다른 색 잉크와 다른 색 커버가 있는 각각이 마커펜을 객체라고 할 수 있다. class seal: #클래스 정의 pass stamp = seal() #인스턴스 = 클래스명() 여기서 stamp의 타입을 알아보자. >>> type(stamp) '__main__.seal' 임을 확인할 수 있다. 이 타입은 이 객체가 seal 클래스로부터 만들어진 인스턴스(instance, 클래스의 구조로 만들어진 실체)라는 의미이다...
[deeplearning] 딥러닝의 동작 원리 - 로지스틱 회귀
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 참 거짓 판단 장치 : 로지스틱 회귀(Logistic regression) 로지스틱 회귀는 참과 거짓 중에 하나를 내놓는 과정이다. 로지스틱 회귀는 선형 회귀와 마찬가지로 적절한 선을 그려가는 과정이다. 다만 직선이 아니라, 참(1)과 거짓(0) 사이를 구분하는 S자 형태의 선을 그어주는 작업이다. (1) 시그모이드 함수 그런데 위와 같은 S자 형태로 그래프가 그려지는 함수가 있는데, 바로 시그모이드 함수(sigmoid function)이다. 여기서도 구해야 하는 값은 선형 회귀 때와 마찬가지로 ax + b이다. 먼저 a는 그래프의 경사도를 결정한다. a 값이 커지면 경사가 커지고 a 값이 작아지면 경사가 작아진..
[deeplearning] 딥러닝의 동작 원리 - 경사 하강법
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 경사 하강법(Gredient Descent) : 오차 수정하기 (오차가 가장 작은 방향으로) 미분 기울기를 이용하는 경사 하강법은 오차를 비교하여 가장 작은 방향으로 이동시키는 방법이다. 위와 같이 각 점에서의 순간 기울기가 그려지면 우리가 찾는 최솟값 m에서의 순간 기울기를 눈여겨 봐야 한다. 그래프가 이차 함수 포물선이므로 꼭짓점의 기울기는 x축과 평행한 선이 된다. 즉, 기울기가 0이다. 따라서 우리가 할 일은 '미분 값이 0인 지점'을 찾는 것이 된다. 이를 위해서 다음과 같은 과정을 거친다. a1에서 미분을 구한다. 구해진 기울기의 반대 방향(기울기가 +면 음의 방향, -면 양의 방향)으로 얼마간 이동시..
[deeplearning] 딥러닝의 동작 원리 - 선형 회귀
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 가장 훌륭한 예측선 긋기 : 선형 회귀 (Linear Regression) 선형 회귀의 정의 "학생들의 중간고사 성적이 [ ]에 따라 다 다르다." 여기서 [ ]에 들어갈 내용을 '정보'라고 한다. 성적을 변하게 하는 '정보' 요소를 x라고 하고, 이 x 값에 따라 변하는 '성적'을 y라고 할 때, 'x 값이 변함에 따라 y 값도 변한다'는 이 정의 안에서, 독립적으로 변할 수 있는 값 x를 독립 변수라고 한다. 또한, 이 독립 변수에 따라 종속적으로 변하는 y를 종속 변수라고 한다. 선형 회귀란 독립 변수 x를 사용해 종속 변수 y의 움직임을 예측하고 설명하는 작업을 말한다. 하나의 x 값 만으로도 y 값을 설..
Programmers / 최댓값과 최솟값 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최댓값과 최솟값 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12939 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 나의 풀이 def solution(s): arr = s.split(' ') new = [] result = '' for i in arr: new.append(int(i)) a = min(new) b = max(new) result += str(a) result += ' ' result += str(b) return ..
Programmers / 최솟값 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최솟값 만들기 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12941 나의 풀이 def solution(A,B): # 두 수를 고르고 곱한 값을 최소로 하는 것이 목표, 뽑았던 숫자는 못뽑음 A = sorted(list(A)) B = sorted(list(B), reverse = True) return sum([x*y for x,y in zip(A,B)]) 문제의 조건대로 따라가면 되는 2단계 중에서도 1단계 수준의 문제이다. ※ 알아야 할 것 - sorted 함수를 이용하여 오름차순으로 정렬한다. - zip 함수를 이용하여 두 값을 곱한다.
[자료구조] 해시, 해시법(hashing) / Python 파이썬
·
python/자료구조 & 알고리즘
해시법 해시법(hashing) '데이터를 저장할 위치 = 인덱스'를 간단한 연산으로 구하는 것을 말한다. 이 방법은 원소의 검색뿐 아니라 추가 · 삭제도 효율적으로 수행할 수 있다. 배열의 키(원소의 값)를 원소 갯수인 7로 나눈 나머지를 해시값(hash value)라고 한다. 해시값은 데이터에 접근할 때 기준이 된다. 11을 7로 나눈 나머지는 4이므로 x[4]에 바로 저장한다. 이렇게 키를 해시값으로 변환하는 과정을 해시 함수(hash function)라고 한다. 또한 일반적으로 해시 함수는 나머지를 구하는 연산 또는 그 연산을 응용할 때 주로 사용한다. 해시 테이블에서 만들어진 원소를 버킷(bucket)이라고 한다. 해시 충돌 앞에서 만든 해시 테이블에 18을 추가하면 7로 나눈 나머지는 4이므로 ..
[자료구조] 검색 알고리즘 (선형 검색/ 이진 검색) / Python 파이썬
·
python/자료구조 & 알고리즘
검색 알고리즘이란? 정렬은 흩어져있는 데이터를 키 값(주민등록번호, 학번 등)을 이용하여 순서대로 열거하는 알고리즘이다. 검색은 데이터(정렬이 안된 데이터 , 정렬이 된 데이터)에서 키 값에 해당되는 데이터를 찾는 알고리즘이다. 검색(Search) : n 개의 데이터를 검색한다. 가장 간단한 검색 알고리즘은 선형 검색(Sequential Search) 알고리즘이다. n개의 데이터를 놓고 한 개씩 검색하는 방법이다. 데이터가 정렬이 된 상태에서는 이진 검색(Binary Search) 방법이 더 효율적이다. 이진 검색은 전체 데이터의 중간에 있는 데이터를 비교하면서 찾는 데이터가 앞/뒤 중 어디 있는지 알 수 있다. 선형 검색 선형 검색 알고리즘은 직선 모양으로 늘어선 요소의 배열에서 앞부터 순차적으로 검색..