Tensorflow 추가 배울 무게.맞춤 정규화 (regularization)는 I는 목적 함수는 다음과 같은 단순한 최소 제곱 최적화 tensorflow 사용하고
예 시나리오 :
, , 나는 tensorflow 변수 w
에 w1
(첫 번째 스칼라 값에 추가적인 제약 조건을 부과하는 초기 목적 함수를 증대하고자한다면
및 X1
가 나타내는 기능 매트릭스 X
의 첫 번째 열), 어떻게 tensorflow에서 이것을 얻을 수 있습니까? 내가 생각할 수있는
한 가지 해결책은 $ 승 인덱스에 $의 첫 번째 값을 tf.slice을 사용하여 원가 기간 외에 추가로이를 추가하는 것입니다하지만 난 그것을이있을 것이라는 점을 확신하지 않다 무게에 원하는 효과.
이 같은 것이 텐서 흐름에서 가능한지 여부에 대한 의견을 듣고 싶습니다. 그렇다면 이것을 구현하는 가장 좋은 방법은 무엇일까요?
다른 옵션은 무게 제한을 추가하는 것입니다. 그리고이를 확장 된 라그랑지안 목적을 사용하여 수행 할 수 있습니다.하지만 먼저 Lagrangian 경로를 가기 전에 정규화 옵션을 탐색하고 싶습니다.
train_x ,train_y are the training data, training targets respectively.
test_x , test_y are the testing data, testing targets respectively.
#Sum of Squared Errs. Cost.
def costfunc(predicted,actual):
return tf.reduce_sum(tf.square(predicted - actual))
#Mean Squared Error Calc.
def prediction(sess,X,y_,test_x,test_y):
pred_y = sess.run(y_,feed_dict={X:test_x})
mymse = tf.reduce_mean(tf.square(pred_y - test_y))
mseval=sess.run(mymse)
return mseval,pred_y
with tf.Session() as sess:
X = tf.placeholder(tf.float32,[None,num_feat]) #Training Data
Y = tf.placeholder(tf.float32,[None,1]) # Target Values
W = tf.Variable(tf.ones([num_feat,1]),name="weights")
init = tf.global_variables_initializer()
sess.run(init)
#Tensorflow ops and cost function definitions.
y_ = tf.matmul(X,W)
cost_history = np.empty(shape=[1],dtype=float)
out_of_sample_cost_history = np.empty(shape=[1],dtype=float)
cost=costfunc(y_,Y)
learning_rate = 0.000001
training_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
for epoch in range(training_epochs):
sess.run(training_step,feed_dict={X:train_x,Y:train_y})
cost_history = np.append(cost_history,sess.run(cost,feed_dict={X: train_x,Y: train_y}))
out_of_sample_cost_history = np.append(out_of_sample_cost_history,sess.run(cost,feed_dict={X:test_x,Y:test_y}))
MSETest,pred_test = prediction(sess,X,y_,test_x,test_y) #Predict on full testing set.