Skip to content
GiHyeun edited this page Apr 3, 2018 · 17 revisions

1주차(2018.03.24)

'모두를 위한 딥러닝' 1~7강 학습

Machine Learning

Field of study that gives computer the ability to learn without being explicity programmed - Arthur Samuel (1959)

Traditionally programmers automate tasks by writing programs.

In machine learning, a computer finds a program that fits to data.

Supervised learning: learning with labeled examples.
Unsupervised learning: learning with un-labeled data.

LinearRegression

Regression : In statistical modeling, regression analysis is a set of statistical processes for estimating the relationships among variables. training data

num_points = 1000
vectors_set = []

for i in range(num_points):
    x1 = np.random.normal(0.0, 0.55)
    y1 = x1*0.1+0.3 + np.random.normal(0.0, 0.03)
    vectors_set.append([x1, y1])

시각화

    plt.plot(x_data, y_data, 'ro')  
    plt.plot(x_data, sess.run(W) * x_data + sess.run(b))
    plt.legend()
    plt.xlabel('x')
    plt.ylabel('y')
    plt.show()

LogisticClassification

training data

num_points = 2000
vectors_set = []

for i in range(num_points):
    if np.random.random() > 0.5:
        vectors_set.append([np.random.normal(0.0, 0.9), np.random.normal(0.0, 0.9)])
    else:
        vectors_set.append([np.random.normal(3.0, 0.5), np.random.normal(1.0, 0.5)])

df = pd.DataFrame({"x":[v[0] for v in vectors_set], "y":[v[1] for v in vectors_set]})

sns.lmplot("x", "y", data=df, fit_reg=False, size=6)
plt.show()

K-means Clustering

training data

num_points = 2000
vectors_set = []

for i in range(num_points):
    if np.random.random() > 0.5:
        vectors_set.append([np.random.normal(0.0, 0.9), np.random.normal(0.0, 0.9)])
    else:
        vectors_set.append([np.random.normal(3.0, 0.5), np.random.normal(1.0, 0.5)])

df = pd.DataFrame({"x":[v[0] for v in vectors_set], "y":[v[1] for v in vectors_set]})

sns.lmplot("x", "y", data=df, fit_reg=False, size=6)
plt.show()

k개 랜덤 선택

centroides = tf.Variable(tf.slice(tf.random_shuffle(vectors), [0, 0], [k, -1]))

군집화

assignments = tf.argmin(tf.reduce_sum(tf.square(tf.subtract(expanded_vectors, expanded_centroides)), 2), 0)

군집의 중심점

means = tf.concat([tf.reduce_mean(tf.gather(vectors, tf.reshape(tf.where(tf.equal(assignments, c)), [1, -1])), reduction_indices=[1]) for c in range(k)], 0)

update_centroides = tf.assign(centroides, means)

시각화

data = {"x":[], "y":[], "cluster":[]}

for i in range(#point date):
    data["x"].append(#x of point)
    data["y"].append(#y of point)
    data["cluster"].append(#predict cluster)

df = pd.DataFrame(data)

sns.lmplot("x", "y", data=df, fit_reg=False, size=6, hue="cluster", legend=False)
plt.show()

시각화

data = {"x":[], "y":[], "cluster":[]}

for i in range(#point date):
    data["x"].append(#x of point)
    data["y"].append(#y of point)
    data["cluster"].append(#predict cluster)

df = pd.DataFrame(data)

sns.lmplot("x", "y", data=df, fit_reg=False, size=6, hue="cluster", legend=False)
plt.show()

MNIST

Image data to MNIST data

def rgb2gray(rgb):
    return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])

image_paths = ['TestImage/3.jpg', 'TestImage/4.jpg', 'TestImage/5.jpg']

my_X = [];

for path in image_paths:
    img = misc.imread(path)
    gray = rgb2gray(img)
    gray = gray.reshape(-1)
    gray = [(255.0-x) / 255.0 for x in gray]
    my_X.append(gray)