무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
lab 04-1 multi-variable linear regression 의 cost 값 질문
동영상의 3분 02초에 해당하는 코드로 10만번을 학습시켜도코스트값이 800이하로 내려가지를 않는데,동영상에서는 2000번만 학습시켜도 대략 4까지 내려가있는 결과화면이 나와있습니다.코드는 몇번이고 확인을 했고 에러또한 없습니다.학습을 횟수를 늘릴수록 코스트값이 내려가기는 하지만,동영상의 2000번 학습과 저의 10만번의 학습의 차이가 너무 커서 무엇이 문제인지질문을 올립니다.
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
어렵군요.
내용자체가 쉬운게 아니다보니...그래도 감사합니다. 열심히 보고 있어요
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
Minmaxscaler
Minmaxscaler로 normalize할 경우 결과값이 동일하게 normalize된 값이 나오는데 원래의 값으로 되돌리는 방법있나요?
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
cost 값이 변화가 없다는 것은 무엇을 의미하는 건가요?
아래는 제가 만든 텐서플로우를 이용한 로지스틱스 회귀분석의 코드입니다.'''import tensorflow as tfimport pandas as pdimport numpy as npxy = np.loadtxt("D:/deep1/projectdata/sixx/test.csv", delimiter=",")df = pd.read_csv("D:/deep1/projectdata/sixx/test.csv", encoding='mbcs')x_data = xy[:, 10:18]y_data = xy[:, [-1]]column_len = len(df.columns.values.tolist()) - 1 # 맨 마지막 [-1]컬럼을 제외column_len = 8X = tf.placeholder(tf.float32, shape=[None, column_len])Y = tf.placeholder(tf.float32, shape=[None, 1])W = tf.Variable(tf.random_normal([column_len, 1]), name='weight')b = tf.Variable(tf.random_normal([1]))hypothesis = tf.sigmoid(tf.matmul(X, W) + b)hypothesis = tf.clip_by_value(hypothesis,1e-5,1-(1e-5)) # 상한, 하한 설정cost = -tf.reduce_mean(Y tf.log(hypothesis) + (1 - Y) (tf.log(1 - hypothesis)))optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)train = optimizer.minimize(cost)sess = tf.Session()sess.run(tf.global_variables_initializer())for step in range(1001):cost_val, W_val, bval, = sess.run([cost, W, b, train], feed_dict={X:x_data, Y:y_data})if step % 100 == 0:print('step :', step, " , cost_val :", cost_val, ' , W :', W_val, ' , b_val :', b_val)print('step :', step, " , cost_val :", cost_val)predicted = tf.cast(hypothesis > 0.5, dtype=tf.float32)accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y:y_data})print('n', h, 'n',c, 'n',a)print(a)'''이는 제가 사용한 코드입니다.결과는 아래와 같이 나왔습니다.step : 0 , cost_val : 10.370755step : 100 , cost_val : 1.0823343step : 200 , cost_val : 1.0823343step : 300 , cost_val : 1.0823343step : 400 , cost_val : 1.0823343step : 500 , cost_val : 1.0823343step : 600 , cost_val : 1.0823343step : 700 , cost_val : 1.0823343step : 800 , cost_val : 1.0823343step : 900 , cost_val : 1.0823343step : 1000 , cost_val : 1.0823343이는 local minimum에 도달했기 때문에 나온 현상일까요? 아니면 뭔가 다른 문제가 있는 걸까요? 또 계속 돌리다보면 아래와 같은 결과를 얻을 때도 있습니다.step : 0 , cost_val : 10.416572step : 100 , cost_val : 10.415087step : 200 , cost_val : 10.412803step : 300 , cost_val : 10.4067335step : 400 , cost_val : 10.376276step : 500 , cost_val : 1.0819494step : 600 , cost_val : 1.0819463step : 700 , cost_val : 1.0819432step : 800 , cost_val : 1.0819402step : 900 , cost_val : 1.0819372step : 1000 , cost_val : 1.0819342랜덤하게 결정된 W, b의 값 때문에 결과가 조금씩 바뀌는 것은 이해하겠지만 cost값이 1이하로 내려가지 않는다는 점이 마음에 걸립니다.이를 해결하기 위해서는 step 1000에서 나온 W, b값을 위의 Variable객체에 넣고 learning_rate를 작게해서 돌려보면 해결 할 수 있는 걸까요?조언을 듣고 싶습니다.
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
cost구하는 공식 reduce_sum으로 되어있는거 오타인가요?
reduce_mean으로 구해왔는데 갑자기 reduce_sum으로 되어있네요오타인가요??
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
H(x)-y 를 제곱을 하는 이유가 궁금합니다.
H(x)-y 를 제곱하면 차이가 커질 수록 페널티가 커진다고 하셨을 때, H(x)-y의 절댓값을 구해도 괜찮다고 생각했습니다.절댓값을 사용하면 음수가 나올 일이 없고 차이가 커질수록 절댓값도 커지기에 페널티도 같이 커진다고 생각합니다.혹시 제곱을 하는 이유가 뒤의 계산에서 마치 분산과 표준편차를 구하는 방법과 비슷하게 가기 위해서인가요?제곱하는 이유와 절댓값을 사용하지 않는 이유가 궁금해져 질문 남겨봅니다. 질문 읽어주셔서 감사합니다.
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
parameter의 수와 prediction power의 상관 관계
강의 시작 부분에서 $$X_1, X_2, ... X_n$$ 처럼 parameter의 수가 많아질수록 prediction power가 강해진다고 설명해주셨는데요, 이 부분의 경우 X값과 Y값이 어느정도 상관 관계가 있을 경우에만 해당 되지 않을까요? 실제로 raw data를 다룰 때에도 큰 상관관계가 없는 parameters들은 EDA 과정에서 제거하거나 별도의 data transformation을 한다고 알고 있었습니다. 설명 해주신 부분은 위의 모든 과정이 모두 끝난 가정 하에 성립이 되는건가요 아니면, 일반적으로 위의 과정 없이도 prediction power가 강해지는건가요? 답변 부탁드립니다! 감사합니다 :)
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
감사합니다
(사진)
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
rank가 3인 tensor을 실제로 많이 사용하나요?
[[ [1,2,3],[4,5,6]]] 이 rank3에 shape[2,1,3]이라고 강의에 나오는데2차원 배열을 넘어가니까 이해가 잘 안가더라구요 ㅠㅠ왜 shape가 [2,1,3]인지 설명 해주실수 있나요??
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
텐서플로홈피보고 pip3 install --upgrade tensorflow 눌러도 설치안됩니다
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.pip3 install --upgrade tensorflowFile "", line 1pip3 install --upgrade tensorflow^SyntaxError: invalid syntax
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
regression은 계산기로도 할 수 있는 작업 아닌가요?
그냥 x에 대한 y값을 구하는 것이라면 말이죠.
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
딥러닝을 잘 소개해주셔서 감사합니다
딥러닝을 잘 소개해주셔서 감사합니다
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
ML lab 04-2 [batch_size]
항상 감사히 강의 듣고 있습니다. Queue Runners 관련해서 수업에서 다룬 코드 중 이 전과 달리 xy[0:1], xy[-1:] 로 각각의 batch를 지정한 이유가 이해가 어렵습니다. 그리고 똑같이 코드를 돌렸을 때, error로 batch_size 관련해서 request 10, current size 0 이라 진행이 안된다고만 나옵니다ㅠㅠ
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
마지막 예제 질문있습니다.
마지막 for문 안의 x_batch, y_batch = sess.run([train_x_batch, train_y_batch]) 이것을 왜 포문안에 넣어주는지 궁금합니다. 찍어 보았을때, 계속 같은 값이 출력이 되는데 굳이 for문 안에 있어야 하는지 잘 모르겠습니다!
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
왜 cost를 구하는 방법이 다를까요?
W와 cost 값을 그래프로 출력하는 예제에서는 tf.reduce_mena()을 이용해서 cost 값을 구합니다. 그런데 미분한 값으로 최적의 W 값을 찾아가는 예제에서는 cost 값을 구할 때 tf.reduce_sum()을 사용합니다. 이것을 다르게 하는 이유가 무엇일까요? 둘 다 cost는 같은 방법으로 구해야 하는 것 아닌가요?
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
Regularization에서 weight 값 의미
오버피팅 방지를 위한 Regularization에서 weight 값이 커지면 더 많이 구부러져서 오버피팅이 된다고 설명되어 있는데 weight이 커지면 왜 오버피팅이되는 걸까요?
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
마지막 슬라이드 (convex fn) 질문입니다.
마지막 슬라이드에서 한 가지 질문이 있습니다! convex function의 모양을 어디서 확인할 수 있을까요? 그냥 구글링하면 확인하게 해주는 사이트가 있나요?
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
이쎅션은 왜 안보이나요?
(사진)
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
이쎅션은 왜 안보이나요?
(사진)
- 미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
바보 같은 질문일 수도 있지만, 궁금해서 질문 드립니다.
노드는 연산에 해당하고, 하나의 오퍼레이션 그리고 엣지는 데이터를 뜻한다고하셨습니다. 그리고 tf.constant로 노드를 추가한다고 하셨는데, a = tf.constant(2); b = tf.constant(3); 일단 여기서 파라미터로 넘어간 것은 그냥 정수형 상수일뿐인데, 이게 오퍼레이션에 해당하나요? 만약에 그냥 테스트라 했을때 c = a+b 라고 하셨습니다. 물론 그냥 숫자더하기처럼 2+3 이구나 라고 이해하면 편하겠지만, a = tf.constant(2) 이고 b = tf.constant(3) 인데 c = a + b tf.run(c) 했을때 2,3이나오는게 이상합니다. 오퍼레이션을 그냥 다 합쳤다는 뜻 인가요? +가 오퍼레이션을 합친다는 의미이고, 단순히 숫자를 더하겠다는 것과는 다르게 더 폭넓은 의미가있는건가요?