skinOptions.hljs
[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) 방법이 더 효율적이다. 이진 검색은 전체 데이터의 중간에 있는 데이터를 비교하면서 찾는 데이터가 앞/뒤 중 어디 있는지 알 수 있다. 선형 검색 선형 검색 알고리즘은 직선 모양으로 늘어선 요소의 배열에서 앞부터 순차적으로 검색..
[기초] 배열(Array) / Python 파이썬
·
python/기초
- 배열(Array) 같은 타입의 변수들로 이루어진 유한 집합 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 함 파이썬에서는 리스트 타입이 배열 기능을 제공 같은 종류의 데이터를 효율적으로 관리해야 하는 경우에 사용 같은 종류의 데이터를 순차적으로 저장 - 배열의 장단점 장점 빠른 접근이 가능 단점 미리 최대 길이를 지정해야 함 추가/삭제가 쉽지 않음 - 파이썬과 배열 1차원 배열 # 1차원 배열 : 리스트로 구현 시 data = [1,2,3,4,5,6,7,8] print(data) # [1, 2, 3, 4, 5, 6, 7, 8] 2차원 배열 # 2차원 배열 : 리스트로 구현 시 data = [[1,2,3],[4,5,6],[7,..
Programmers / *[1차] 다트게임 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: [1차] 다트게임 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/17682 나의 풀이(미완성) def solution(dart): arr=[] tmp = [] sum = 0 for x in dart: #문자열 분리 arr.append(x) for i in range(len(arr)): if arr[i].isnumeric(): arr[i] = int(arr[i]) for i in range(1,len(arr)): #10 처리 if arr[i-1] == 1 and arr[i] == 0: arr[i-1] = 10 arr.pop(i) for i in range(1,len(arr)):#S,D,T if a..
Programmers / 로또의 최고 순위와 최저 순위 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 로또의 최고 순위와 최저 순위 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77484 나의 풀이 def solution(lottos, win_nums): cnt = [0,0] num = [] zero_cnt = 0 for i in lottos: if i in win_nums: num.append(i) if i == 0 : zero_cnt += 1 if len(num) == 0 : cnt[1] = 6 elif len(num) == 1: cnt[1] = 6 elif len(num) == 2: cnt[1] = 5 elif len(num) == 3: cnt[1] = 4 elif len(num) == ..
Programmers / 숫자 문자열과 영단어 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 숫자 문자열과 영단어 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/81301 풀이 1 딕셔너리 리플레이스 def solution(s): nums = { 'zero' : '0', 'one' : '1', 'two' : '2', 'three' : '3', 'four' : '4', 'five' : '5', 'six' : '6', 'seven' : '7', 'eight' : '8', 'nine' : '9' } for key, value in nums.items(): s = s.replace(key,value) return int(s) 풀이 2 리스트 리플레이스 ( 인덱스와 해당 문자열이 같은 것 이용)..
Programmers / 완주하지 못한선수 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 완주하지 못한선수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/42576 나의 풀이(틀림) def solution(participant, completion): new_list = list(set(participant) - set(completion)) for x in new_list: return x 나의 함수는 동명이인이 있는 경우는 고려되지 않는 잘못된 함수이다.. 다른 풀이 def solution(participant, completion): participant.sort() completion.sort() for p,c in zip(participant, completion): if ..
Programmers / 부족한 금액 계산하기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 부족한 금액 계산하기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/82612 나의 풀이 def solution(price, money, count): sum = 0 for i in range(1,count+1): sum += price *i if sum - money > 0: return sum - money else: return 0 모범답안 def solution(price, money, count): return max(0,price*(count+1)*count//2-money) 등차수열의 합공식을 사용하여 식을 작성하였다. 등차수열의 합은 다음과 같다. a:초항 l:마지막항 n:수열의 ..