본문 바로가기

분류 전체보기

(33)
[Codewars] A Rule of Divisibility by 13 Codewars: Achieve mastery through challenge Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com ▶ 문제 : ▶ 내 답안 : def thirt(n): def sum_n(num) : return sum([int(v)*((10**i)%13) for i,v in enumerate(str(num)[::-1])]) while True : n = sum_n(n) if n == sum_n(n) : return n break ▶ 모범답안 : array = [1, 10, 9, 12..
[Codewars] String incrementer ▶ 문제 : ▶ 내 답안 : def increment_string(string): if string == "": return "1" try: if len(str(int(string)+1)) > len(string): return str(int(string) + 1) else: return "0"*(len(string) - len(str(int(string)+1))) + str(int(string)+1) except: for i, v in enumerate(string[::-1]): if v not in [str(x) for x in range(10)]: break org_str=string[:-i] if org_str == "" : return string + "1" else : org_num=strin..
Google ML - 5) 텐서플로우 첫걸음 : 도구 다음 그림은 텐서플로우 도구함의 현재 계층구조를 보여줍니다. 다음 표에는 여러 레이어의 목적이 요약되어 있습니다. 도구함 설명 에스티메이터(tf.estimator) 높은 수준의 OOP API tf.layers / tf.losses / tf.metrics 일반 모델 구성요소용 라이브러리 텐서플로우 낮은 수준의 API 텐서플로우는 다음 두 요소로 구성됩니다. 그래프 프로토콜 버퍼 분산된 그래프를 실행하는 런타임 이 두 구서용소는 자바 컴파일러 및 JVM과 유사합니다. JVM이 여러 하드웨어 플랫폼에서 구현되는 것과 마찬가기로 텐서플로우도 여러 CPU와 GPU에서 구현됩니다. 어느 API를 사용해야 하나요? 문제를 해결하는 최고 수준의 추상화를 사용해야 합니다. 추상화 수준이 높을수록 더 사용하기 쉽지만 (설..
Google ML - 4) 손실 줄이기 : 확률적 경사하강법 2021.04.19 - [분류 전체보기] - Google ML - 4) 손실줄이기 : 동영상 강의 2021.04.19 - [분류 전체보기] - Google ML - 4) 손실 줄이기 : 반복 방식 2021.04.19 - [분류 전체보기] - Google ML - 4) 손실 줄이기 : 경사하강법 2021.04.19 - [분류 전체보기] - Google ML - 4) 손실 줄이기 : 학습률 경사하강법에서 배치는 단일반복에서 기울기를 계산하는 데 사용하는 예의 총 개수입니다. 지금까지는 배치가 전체 데이터 세트라고 가정했습니다. 하지만 Google 규모의 작업에서는 데이터 세트에 수십억, 수천억 개의 예가 포함되는 경우가 많습니다. 또한 대개 Google 데이터 세트에는 엄청나게 많은 특성이 포함되어 있습니다..
Google ML - 4) 손실 줄이기 : 학습률 앞에서 살펴본 것처럼 기울기 벡터는 방향과 크기를 모두 갖습니다. 경사하강법 알고리즘은 기울기에 학습률 또는 보폭이라 불리는 스칼라를 곱하여 다음 지점을 결정합니다. 예를 들어 기울기가 2.5이고 학습률이 0.01이면 경사하강법 알고리즘은 이전 지점으로부터 0.025 떨어진 지점을 다음 지점으로 결정합니다. 초매개변수는 프로그래머가 머신러닝 알고리즘에서 조정하는 값입니다. 대부분의 머신러닝 프로그래머는 학습률을 미세 조정하는 데 상당한 시간을 소비합니다. 학습률을 너무 작게 설정하면 학습 시간이 매우 오래 걸릴 것입니다. 그림 6. 학습률이 너무 작습니다. 반대로 학습률을 너무 크게 설정하면 양자역학 실험을 잘못한 것처럼 다음 지점이 곡선의 최저점을 무질서하게 이탈할 우려가 있습니다. 그림 7. 학습률이..
Google ML - 4) 손실 줄이기 : 경사하강법 반복 방식 다이어그램에는 '매개변수 업데이트 계산'이라는 두루뭉술한 모양의 녹색 상자가 포함되어 있었습니다. 이 애매모호한 알고리즘을 좀 더 실질적인 것으로 대체해 보겠습니다. w1의 가능한 모든 값에 대해 손실을 계산할 시간과 컴퓨팅 자료가 있다고 가정합니다. 지금까지 살펴본 것과 같은 회귀 문제에서 손실과 w1을 대응한 도표는 항상 볼록 함수 모양을 할 것입니다. 즉, 도표가 다음과 같이 항상 그릇 모양으로 나타납니다. 그림 2. 회귀 문제에서는 볼록 함수 모양의 손실 대 가중치 도표가 산출됩니다. 볼록 문제에는 기울기가 정확하게 0인 지점인 최소값이 하나만 존재합니다. 이 최소값에서 손실 함수가 수렴합니다. 전체 데이터 세트에 대해 상상할 수 있는 모든 w1 값의 손실 함수를 계산하는 것은 수렴 지..
Google ML - 4) 손실 줄이기 : 반복 방식 이번 파트에서는 머신러닝 모델이 반복을 통해 어떻게 손실을 줄이는지 알아보겠습니다. 반복 학습은 골무와 같이 숨겨진 물건을 찾는 아이들 놀이인 '핫 앤 콜드'와 비슷합니다. 이 놀이에서 '숨겨진 물건'은 최적 모델이 됩니다. 처음에는 임의의 지점에서 시작해서('w1의 값은 0') 시스템이 손실 값을 알려줄 때까지 기다립니다. 그런 다음 다른 값을 추정해서('w1의 값은 0.5') 손실 값을 확인합니다. 좋습니다, 가까워지고 있군요. 사실 이런 놀이는 제대로만 하면 점점 가까워지게 되어 있습니다. 이 게임의 진짜 요령은 최적의 모델을 가능한 한 가장 효율적으로 찾는 것입니다. 다음 그림은 머신러닝 알고리즘이 모델을 학습하는 데 사용하는 반복적인 시행착오 과정을 보여줍니다. 그림 1. 반복 방식의 모델 학습..
Google ML - 4) 손실줄이기 : 동영상 강의 안녕하세요. Google 프로그래머인 Cassandra Shaw입니다. Google 내 다른 그룹의 TensorFlow 사용을 돕고 있죠. 이 섹션에서는 손실 줄이기를 다룰 건데요, 지난 시간에는 손실을 계산하는 법을 알아봤죠. 그럼 손실을 최소화하는 매개변수는 어떻게 찾아낼까요? 매개변수 공간 안에 나아갈 방향이 있으면 좋겠죠. 초매개변수 세트를 새로 적용할 때마다 손실이 줄어드는 방향으로요. 이때 방향을 잡기 위해서 경사를 계산해 볼 수 있어요. 모델 매개변수를 감안한 손실 함수의 도함수인 거죠. 제곱 손실처럼 간단한 손실 함수의 도함수는 계산하기 쉬워요. 모델 매개변수를 효율적으로 업데이트할 수도 있고요. 이때 반복적인 접근방식을 사용하는데요, 입력된 데이터를 기반으로 손실 함수의 경사를 계산해요...