{"action":"created","comment":{"url":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/comments/165243196","pull_request_review_id":93148045,"id":165243196,"diff_hunk":"@@ -0,0 +1,141 @@\n+\\section{Lecture 5: Conditional Gradient (Frank-Wolfe)}\n+\\sectionlabel{frankwolfe}\n+In this lecture we discussed about the conditional gradient method, also known as the Frank-Wolfe (FW) algorithm. The motivation of using this approach is the projected gradient descent can be computationally inefficient under certain scenarios.\n+\n+\\subsection{Intuition behind Frank-Wolfe algorithm}\n+We motivate this lecture by the computational inefficiency that projected gradient can have. With conditional gradient, we are able to sidestep some of these inefficiencies. An intuitive idea of the FW algorithm is as follows. \\\\\n+\\\\We start from $x_0$. Then, for t = 1 to T steps, we set\n+$$ x_{t+1} = x_t + \\eta_t(\\bar{x_t}-x_t) $$\n+where\n+$$ \\bar{x_t} = \\underset{x \\in \\domain}{\\operatorname{argmin}} f(x_t) + \\nabla f(x_t) ^\\trans (x-x_t)$$\n+Since we hope to minimize with respect to $x \\in \\domain$, we can simplify the equation.\n+$$ \\bar{x_t} = \\underset{x \\in \\domain}{\\operatorname{argmin}} \\nabla f(x_t) ^\\trans x $$\n+Note that we need step size $\\eta_t \\in [0,1]$ to guarantee $x_{t+1} \\in \\domain$.\n+\n+\\subsection{Theorem: conditional gradient convergence analysis}\n+\\begin{theorem}[Convergence Analysis]\n+\\theoremlabel{convergence}\n+Assume:\n+\\begin{itemize}\n+\\item $f\\colon\\domain\\to\\R$ is convex and $\\beta$-smooth\n+\\item $\\exists$ an optimal point, $x^*$, such that $x^* \\in\\domain$ and $\\nabla f(x^*)$ = 0\n+\\end{itemize}\n+Then, Frank-Wolfe achieves\n+$$ f(x_t) - f(x^*) \\leq \\frac{2\\beta D^2}{t+2}$$\n+with step size \n+$$\\eta_t = \\frac{2}{t+2}$$\n+where D is the diameter of $\\domain$, defined:\n+$$ D = \\max_{x-y \\in \\domain} \\| x-y \\|$$\n+\\end{theorem}\n+Note that we can trade our assumption of the existence of $x^*$ for a dependence on L in our bound.\n+\n+\\begin{proof}[Proof of \\theoremref{convergence}.]\n+By smoothness and convexity, we have\n+$$ f(y) \\leq f(x) +\\nabla f(x) ^\\trans (x-x_t) + \\frac{\\beta}{2} \\| x-y \\| ^2 $$\n+Letting $ y = x_{t+1} $ and $x= x_t$, combined with the progress rule of conditional gradient descent, the above equation yields:\n+$$ f(x_{t+1}) \\leq f(x_t) + \\eta_t \\nabla f(x_t) ^\\trans (\\bar{x_t} - x_t) + \\frac{\\eta_t^2\\beta}{2} \\| \\bar{x_t} - x_t \\| ^2 $$\n+We now recall the definition of $D$ from \\theoremref{convergence} and observe that $\\| \\bar{x_t} - x_t \\| ^2 \\leq D^2$. Thus, we rewrite the inequality:\n+$$ f(x_{t+1}) \\leq f(x_t) + \\eta_t \\nabla f(x_t) ^\\trans (x_t^* - x_t) + \\frac{\\eta_t^2\\beta D ^2}{2} $$\n+Because of convexity, we also have that\n+$$ \\nabla f(x_t) ^\\trans (x^*-x_t) \\leq f(x^*) - f(x_t) $$\n+Thus,\n+\\begin{equation}\n+\\equationlabel{convergenceInequal}\n+f(x_{t+1})-f(x^*) \\leq (1-\\eta_t)(f(x_t)-f(x^*)) + \\frac{\\eta_t^2\\beta D ^2}{2}\n+\\end{equation}\n+\\\\We use induction in order to prove $f(x_t)-f(x^*) \\leq \\frac{2\\beta D^2}{t+2}$  based on \\equationref{convergenceInequal} above.\\\\\n+First step: Base Case $t=0$ \\\\\n+Since $ f(x_{t+1})-f(x^*) \\leq (1-\\eta_t)(f(x_t)-f(x^*)) + \\frac{\\eta_t^2\\beta D ^2}{2}$, when t=0, $\\eta_t =\\frac{2}{0+2}=1, then $\n+\\begin{align*} f(x_1)-f(x^*) &\\leq (1-\\eta_t)(f(x_t)-f(x^*)) + \\frac{\\beta}{2}\\| x_1-x^* \\|^2 \\\\\n+&= (1-1)(f(x_t)-f(x^*)) + \\frac{\\beta}{2}\\| x_1-x^* \\|^2 \\\\\n+&\\leq \\frac{\\beta D^2}{2}\\\\\n+&\\leq \\frac{2\\beta D^2}{3}\n+\\end{align*}\n+Thus, the induction hypothesis holds for our base case. \\\\\n+(Note that we cannot directly use $f(x_{t+1})-f(x^*) \\leq (1-\\eta_t)(f(x_t)-f(x^*)) + \\frac{\\eta_t^2\\beta D ^2}{2}$ directly to derivate the base case out. Because $(1-\\eta_t)(f(x_t)-f(x^*))$ is greater than 0 and cannot be directly proved to be bounded.)\\\\\n+Second step: We assume that $f(x_t)-f(x^*) \\leq \\frac{2\\beta D^2}{t+2}$ holds $\\forall t$ and can show that the induction hyposthesis holds in general.\\\\\n+General case: given $f(x_t)$ holds for our destinated inequality, we'd like to show it also holds for $f(x_{t+1})$. \\\\\n+Using \\equationref{convergenceInequal},\n+\\begin{align*} f(x_{t+1})-f(x) &\\leq (1- \\frac{2}{t+2}) (f(x_t)-f(x^*))+ \\frac{4}{2(t+2)} \\beta D^2 \\\\\n+& \\leq (1- \\frac{2}{t+2}) (\\frac{2\\beta D^2}{t+2})+ \\frac{4}{2(t+2)} \\beta D^2 \\\\\n+& = \\beta D^2 (\\frac{2t}{(t+2)^2} +\\frac{2}{(t+2)^2}) \\\\\n+& = 2\\beta D^2 \\frac{t+1}{(t+2)^2} \\\\\n+& = 2\\beta D^2 (\\frac{t+1}{t+2}) (\\frac{1}{t+2}) \\\\\n+& \\leq 2\\beta D^2 (\\frac{t+2}{t+3}) (\\frac{1}{t+2}) \\\\\n+& = 2\\beta D^2 \\frac{1}{t+3}\n+\\end{align*}\n+Thus, the inequality also holds for the t+1 case.\n+\n+\\end{proof}\n+\n+\\subsection{Examples}\n+The code for the following examples can be found \\href{https://ee227c.github.io/code/lecture4.html}{here}.\n+\n+\\subsubsection{Nuclear norm projection}\n+The \\textit{nuclear norm} (sometimes called \\textit{Schatten $1$-norm} or \\textit{trace norm}) of a matrix $A$, denoted $\\|A\\|_*$, is defined as the sum of its singular values\n+\\[\n+\\|A\\|_* = \\sum_i \\sigma_i(A)\\,.\n+\\]\n+The norm can be computed from the singular value decomposition of $A$.\n+We denote the unit ball of the nuclear norm by \n+\\[\n+B_*^{m\\times n}=\\{A\\in\\mathbb{R}^{m\\times n} \\mid \\|A\\|_*\\le 1\\}.\n+\\]\n+How can we project a matrix $A$ onto $B_*$? Formally, we want to solve\n+\\[\n+\\min_{X\\in B_*}\\|A-X\\|_F^2\n+\\]\n+Due to the rotational invariance of the Frobenius norm, the solution is obtained by projecting the singular values onto the unit simplex. This operation corresponds to shifting all singular values by the same parameter $\\theta$ and clipping values at $0$ so that the sum of the shifted and clipped values is equal to $1$. This algorithm can be found from \\cite{Duchi2008}.","path":"notes/lecture5.tex","position":88,"original_position":88,"commit_id":"9a36712c3ff38ac1a4417ae94fcaa6f5cba1edff","original_commit_id":"9a36712c3ff38ac1a4417ae94fcaa6f5cba1edff","user":{"login":"mrtzh","id":1649006,"avatar_url":"https://avatars3.githubusercontent.com/u/1649006?v=4","gravatar_id":"","url":"https://api.github.com/users/mrtzh","html_url":"https://github.com/mrtzh","followers_url":"https://api.github.com/users/mrtzh/followers","following_url":"https://api.github.com/users/mrtzh/following{/other_user}","gists_url":"https://api.github.com/users/mrtzh/gists{/gist_id}","starred_url":"https://api.github.com/users/mrtzh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrtzh/subscriptions","organizations_url":"https://api.github.com/users/mrtzh/orgs","repos_url":"https://api.github.com/users/mrtzh/repos","events_url":"https://api.github.com/users/mrtzh/events{/privacy}","received_events_url":"https://api.github.com/users/mrtzh/received_events","type":"User","site_admin":false},"body":"can be found *in*","created_at":"2018-02-01T02:09:41Z","updated_at":"2018-02-01T02:14:23Z","html_url":"https://github.com/ee227c/ee227c.github.io/pull/4#discussion_r165243196","pull_request_url":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/comments/165243196"},"html":{"href":"https://github.com/ee227c/ee227c.github.io/pull/4#discussion_r165243196"},"pull_request":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4"}}},"pull_request":{"url":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4","id":166423335,"html_url":"https://github.com/ee227c/ee227c.github.io/pull/4","diff_url":"https://github.com/ee227c/ee227c.github.io/pull/4.diff","patch_url":"https://github.com/ee227c/ee227c.github.io/pull/4.patch","issue_url":"https://api.github.com/repos/ee227c/ee227c.github.io/issues/4","number":4,"state":"open","locked":false,"title":"scribed lecture5","user":{"login":"zeshi1990","id":9346056,"avatar_url":"https://avatars1.githubusercontent.com/u/9346056?v=4","gravatar_id":"","url":"https://api.github.com/users/zeshi1990","html_url":"https://github.com/zeshi1990","followers_url":"https://api.github.com/users/zeshi1990/followers","following_url":"https://api.github.com/users/zeshi1990/following{/other_user}","gists_url":"https://api.github.com/users/zeshi1990/gists{/gist_id}","starred_url":"https://api.github.com/users/zeshi1990/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeshi1990/subscriptions","organizations_url":"https://api.github.com/users/zeshi1990/orgs","repos_url":"https://api.github.com/users/zeshi1990/repos","events_url":"https://api.github.com/users/zeshi1990/events{/privacy}","received_events_url":"https://api.github.com/users/zeshi1990/received_events","type":"User","site_admin":false},"body":"Dear instructors,\r\n\r\nWe have finished scribing for Lecture5. Please review the notes and let us know if any issues need to be fixed. Thanks!\r\n\r\nZeshi, Kun, and Victoria","created_at":"2018-02-01T01:43:37Z","updated_at":"2018-02-01T02:14:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9a96eb69574f80edacd47ca28009f6618187b74e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4/commits","review_comments_url":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4/comments","review_comment_url":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ee227c/ee227c.github.io/issues/4/comments","statuses_url":"https://api.github.com/repos/ee227c/ee227c.github.io/statuses/9a36712c3ff38ac1a4417ae94fcaa6f5cba1edff","head":{"label":"zeshi1990:master","ref":"master","sha":"9a36712c3ff38ac1a4417ae94fcaa6f5cba1edff","user":{"login":"zeshi1990","id":9346056,"avatar_url":"https://avatars1.githubusercontent.com/u/9346056?v=4","gravatar_id":"","url":"https://api.github.com/users/zeshi1990","html_url":"https://github.com/zeshi1990","followers_url":"https://api.github.com/users/zeshi1990/followers","following_url":"https://api.github.com/users/zeshi1990/following{/other_user}","gists_url":"https://api.github.com/users/zeshi1990/gists{/gist_id}","starred_url":"https://api.github.com/users/zeshi1990/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeshi1990/subscriptions","organizations_url":"https://api.github.com/users/zeshi1990/orgs","repos_url":"https://api.github.com/users/zeshi1990/repos","events_url":"https://api.github.com/users/zeshi1990/events{/privacy}","received_events_url":"https://api.github.com/users/zeshi1990/received_events","type":"User","site_admin":false},"repo":{"id":119766706,"name":"ee227c.github.io","full_name":"zeshi1990/ee227c.github.io","owner":{"login":"zeshi1990","id":9346056,"avatar_url":"https://avatars1.githubusercontent.com/u/9346056?v=4","gravatar_id":"","url":"https://api.github.com/users/zeshi1990","html_url":"https://github.com/zeshi1990","followers_url":"https://api.github.com/users/zeshi1990/followers","following_url":"https://api.github.com/users/zeshi1990/following{/other_user}","gists_url":"https://api.github.com/users/zeshi1990/gists{/gist_id}","starred_url":"https://api.github.com/users/zeshi1990/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeshi1990/subscriptions","organizations_url":"https://api.github.com/users/zeshi1990/orgs","repos_url":"https://api.github.com/users/zeshi1990/repos","events_url":"https://api.github.com/users/zeshi1990/events{/privacy}","received_events_url":"https://api.github.com/users/zeshi1990/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/zeshi1990/ee227c.github.io","description":"EE227C (Spring 2018) Course page","fork":true,"url":"https://api.github.com/repos/zeshi1990/ee227c.github.io","forks_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/forks","keys_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/teams","hooks_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/hooks","issue_events_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/events","assignees_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/tags","blobs_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/languages","stargazers_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/stargazers","contributors_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/contributors","subscribers_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/subscribers","subscription_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/subscription","commits_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/merges","archive_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/downloads","issues_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/labels{/name}","releases_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/zeshi1990/ee227c.github.io/deployments","created_at":"2018-02-01T01:37:37Z","updated_at":"2018-02-01T01:37:39Z","pushed_at":"2018-02-01T01:40:16Z","git_url":"git://github.com/zeshi1990/ee227c.github.io.git","ssh_url":"git@github.com:zeshi1990/ee227c.github.io.git","clone_url":"https://github.com/zeshi1990/ee227c.github.io.git","svn_url":"https://github.com/zeshi1990/ee227c.github.io","homepage":null,"size":5917,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ee227c:master","ref":"master","sha":"7f704ee6cc893bc22f08772b17dab91fd2dd60aa","user":{"login":"ee227c","id":35434668,"avatar_url":"https://avatars1.githubusercontent.com/u/35434668?v=4","gravatar_id":"","url":"https://api.github.com/users/ee227c","html_url":"https://github.com/ee227c","followers_url":"https://api.github.com/users/ee227c/followers","following_url":"https://api.github.com/users/ee227c/following{/other_user}","gists_url":"https://api.github.com/users/ee227c/gists{/gist_id}","starred_url":"https://api.github.com/users/ee227c/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ee227c/subscriptions","organizations_url":"https://api.github.com/users/ee227c/orgs","repos_url":"https://api.github.com/users/ee227c/repos","events_url":"https://api.github.com/users/ee227c/events{/privacy}","received_events_url":"https://api.github.com/users/ee227c/received_events","type":"User","site_admin":false},"repo":{"id":117469442,"name":"ee227c.github.io","full_name":"ee227c/ee227c.github.io","owner":{"login":"ee227c","id":35434668,"avatar_url":"https://avatars1.githubusercontent.com/u/35434668?v=4","gravatar_id":"","url":"https://api.github.com/users/ee227c","html_url":"https://github.com/ee227c","followers_url":"https://api.github.com/users/ee227c/followers","following_url":"https://api.github.com/users/ee227c/following{/other_user}","gists_url":"https://api.github.com/users/ee227c/gists{/gist_id}","starred_url":"https://api.github.com/users/ee227c/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ee227c/subscriptions","organizations_url":"https://api.github.com/users/ee227c/orgs","repos_url":"https://api.github.com/users/ee227c/repos","events_url":"https://api.github.com/users/ee227c/events{/privacy}","received_events_url":"https://api.github.com/users/ee227c/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ee227c/ee227c.github.io","description":"EE227C (Spring 2018) Course page","fork":false,"url":"https://api.github.com/repos/ee227c/ee227c.github.io","forks_url":"https://api.github.com/repos/ee227c/ee227c.github.io/forks","keys_url":"https://api.github.com/repos/ee227c/ee227c.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ee227c/ee227c.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ee227c/ee227c.github.io/teams","hooks_url":"https://api.github.com/repos/ee227c/ee227c.github.io/hooks","issue_events_url":"https://api.github.com/repos/ee227c/ee227c.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ee227c/ee227c.github.io/events","assignees_url":"https://api.github.com/repos/ee227c/ee227c.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ee227c/ee227c.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ee227c/ee227c.github.io/tags","blobs_url":"https://api.github.com/repos/ee227c/ee227c.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ee227c/ee227c.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ee227c/ee227c.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ee227c/ee227c.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ee227c/ee227c.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ee227c/ee227c.github.io/languages","stargazers_url":"https://api.github.com/repos/ee227c/ee227c.github.io/stargazers","contributors_url":"https://api.github.com/repos/ee227c/ee227c.github.io/contributors","subscribers_url":"https://api.github.com/repos/ee227c/ee227c.github.io/subscribers","subscription_url":"https://api.github.com/repos/ee227c/ee227c.github.io/subscription","commits_url":"https://api.github.com/repos/ee227c/ee227c.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ee227c/ee227c.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ee227c/ee227c.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ee227c/ee227c.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ee227c/ee227c.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ee227c/ee227c.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ee227c/ee227c.github.io/merges","archive_url":"https://api.github.com/repos/ee227c/ee227c.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ee227c/ee227c.github.io/downloads","issues_url":"https://api.github.com/repos/ee227c/ee227c.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ee227c/ee227c.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ee227c/ee227c.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ee227c/ee227c.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ee227c/ee227c.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/ee227c/ee227c.github.io/deployments","created_at":"2018-01-14T21:48:16Z","updated_at":"2018-01-29T21:21:29Z","pushed_at":"2018-02-01T01:43:38Z","git_url":"git://github.com/ee227c/ee227c.github.io.git","ssh_url":"git@github.com:ee227c/ee227c.github.io.git","clone_url":"https://github.com/ee227c/ee227c.github.io.git","svn_url":"https://github.com/ee227c/ee227c.github.io","homepage":null,"size":5917,"stargazers_count":11,"watchers_count":11,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":8,"open_issues":1,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4"},"html":{"href":"https://github.com/ee227c/ee227c.github.io/pull/4"},"issue":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/issues/4"},"comments":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/issues/4/comments"},"review_comments":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4/comments"},"review_comment":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/pulls/4/commits"},"statuses":{"href":"https://api.github.com/repos/ee227c/ee227c.github.io/statuses/9a36712c3ff38ac1a4417ae94fcaa6f5cba1edff"}},"author_association":"NONE"}}
{"actor":{"display_login":"mrtzh"}}