\section{Introduction}
\label{sec:intro}

These guidelines include complete descriptions of the fonts, spacing, and related information for producing your proceedings manuscripts. Please follow them. 

\subsection{Language}

All manuscripts must be in English.

\subsection{Paper length}

Papers should be no longer than 6 pages, including all text, figures, and references.

\subsection{Supplemental material}

Authors may optionally upload supplemental material. Typically, this material might include:
\begin{itemize}
  \item a short presentation summarizing the paper,
  \item videos of results that cannot be included in the main paper,
  \item screen recording of the running program
  \item anonymized related submissions to other conferences and journals, and
  \item appendices or technical reports containing extended proofs and mathematical derivations that are not essential for understanding of the paper.
\end{itemize}

Note that the contents of the supplemental material should be referred to appropriately in the paper and that reviewers are not obliged to look at it.

All supplemental material must be zipped into a single file. There is a 20MB limit on the size of this file.

\subsection{Dual submission}

By submitting a manuscript to ICME, the authors guarantee that it has not been previously published (or accepted for publication) in substantially similar form. Furthermore, no paper which contains significant overlap with the contributions of this paper either has been or will be submitted during the ICME 2021 review period to either a journal or a conference.

If there are papers that may appear to violate any of these conditions, then it is the authors' responsibility to (1) cite these papers (preserving anonymity as described in Section 2 of this example paper), (2) argue in the body of your paper why your ICME paper is nontrivially different from these concurrent submissions, and (3) include anonymized versions of those papers in the supplemental material.

\section{Blind Review}

Many authors misunderstand the concept of anonymizing for blind review. Blind review does not mean that one must remove citations to one's own work-in fact it is often impossible to review a paper unless the previous citations are known and available.

Blind review means that you do not use the words ``my'' or ``our'' when citing previous work. That is all. (But see below for technical reports)

Saying ``this builds on the work of Lucy Smith [1]'' does not say that you are Lucy Smith, it says that you are building on her work. If you are Smith and Jones, do not say ``as we show in [7]'', say ``as Smith and Jones show in [7]''and at the end of the paper, include reference 7 as you would any other cited work.

An example of a bad paper:
\begin{quote}
\begin{center}
    An analysis of the frobnicatable foo filter.
\end{center}

   In this paper we present a performance analysis of our
   previous paper [1], and show it to be inferior to all
   previously known methods. Why the previous paper was
   accepted without this analysis is beyond me.

   [1] Removed for blind review
\end{quote}

An example of an excellent paper:

\begin{quote}
\begin{center}
     An analysis of the frobnicatable foo filter.
\end{center}

   In this paper we present a performance analysis of the
   paper of Smith [1], and show it to be inferior to
   all previously known methods.  Why the previous paper
   was accepted without this analysis is beyond me.

   [1] Smith, L and Jones, C. ``The frobnicatable foo
   filter, a fundamental contribution to human knowledge''.
   Nature 381(12), 1-213.
\end{quote}

If you are making a submission to another conference at the same time, which covers similar or overlapping material, you may need to refer to that submission in order to explain the differences, just as you would if you had previously published related work. In such cases, include the anonymized parallel submission~\cite{Authors12} as additional material and cite it as

\begin{quote}
1. Authors. ``The frobnicatable foo filter'', ACM MM 2016 Submission ID 324, Supplied as additional material {\tt acmmm13.pdf}.
\end{quote}

Finally, you may feel you need to tell the reader that more details can be found elsewhere, and refer them to a technical report. For conference
submissions, the paper must stand on its own, and not {\em require} the reviewer to go to a technical report for further details. Thus, you may say in
the body of the paper ``further details may be found in~\cite{Authors12b}''.  Then submit the technical report as additional material. Again, you may not assume the reviewers will read this material.

Sometimes your paper is about a problem which you tested using a tool which is widely known to be restricted to a single institution.  For example, let's say it's 1969, you have solved a key problem on the Apollo lander, and you believe that the ICME audience would like to hear about your solution.  The work is a development of your celebrated 1968 paper entitled ``Zero-g frobnication: How being the only people in the world with access to the Apollo lander source code makes us a wow at parties'', by Zeus.

You can handle this paper like any other.  Don't write ``We show how to improve our previous work [Anonymous, 1968].  This time we tested the algorithm on a lunar lander [name of lander removed for blind review]''. That would be silly, and would immediately identify the authors. Instead write the following:
\begin{quotation}
\noindent
   We describe a system for zero-g frobnication.  This
   system is new because it handles the following cases:
   A, B.  Previous systems [Zeus et al. 1968] didn't
   handle case B properly.  Ours handles it by including
   a foo term in the bar integral.

   ...

   The proposed system was integrated with the Apollo
   lunar lander, and went all the way to the moon, don't
   you know.  It displayed the following behaviours
   which show how well we solved cases A and B: ...
\end{quotation}

As you can see, the above text follows standard scientific convention, reads better than the first version, and does not explicitly name you as the authors. A reviewer might think it likely that the new paper was written by Zeus, but cannot make any decision based on that guess. He or she would have to be sure that no other authors could have been contracted to solve problem B.

FAQ: Are acknowledgements OK?  No. Please omit them in the review copy and leave them for the final, camera ready copy.

\section{Formatting Your Paper}

All printed material, including text, illustrations, and charts, must be kept within a print area of 7 inches (178 mm) wide by 9 inches (229 mm) high. Do not write or print anything outside the print area. The top margin must be 1 inch (25 mm), except for the title page, and the left margin must be 0.75 inch (19 mm).  All text must be in a two-column format. Columns are to be 3.39 inches (86 mm) wide, with a 0.24 inch (6 mm) space between them. Text must be fully justified.

\section{Page Title Section}

The paper title (on the first page) should begin 1.38 inches (35 mm) from the top edge of the page, centered, completely capitalized, and in Times 14-point, boldface type.  The authors' name(s) and affiliation(s) appear below the title in capital and lower case letters.  Papers with multiple authors and affiliations may require two or more lines for this information.

\section{Type-Style and Fonts}

To achieve the best rendering both in the proceedings and from the CD-ROM, we strongly encourage you to use Times-Roman font. In addition, this will give the proceedings a more uniform look. Use a font that is no smaller than nine point type throughout the paper, including figure captions.

If you use the smallest point size, there should be no more than 3.2 lines/cm (8 lines/inch) vertically. This is a minimum spacing; 2.75 lines/cm (7 lines/inch) will make the paper much more readable. Larger type sizes require correspondingly larger vertical spacing. Please do not double-space your paper. True-Type 1 fonts are preferred.

The first paragraph in each section should not be indented, but all following paragraphs within the section should be indented as these paragraphs demonstrate.

\section{Major Headings}

Major headings, for example, ``1. Introduction'', should appear in all capital letters, bold face if possible, centered in the column, with one blank line before, and one blank line after. Use a period (``.'') after the heading number, not a colon.

\subsection{Subheadings}

Subheadings should appear in lower case (initial word capitalized) in boldface. They should start at the left margin on a separate line.

\subsubsection{Sub-subheadings}

Sub-subheadings, as in this paragraph, are discouraged. However, if you must use them, they should appear in lower case (initial word capitalized) and start at the left margin on a separate line, with paragraph text beginning on the following line.  They should be in italics.

\section{Page Numbering}

Please do {\bf not} paginate your paper. Page numbers, session numbers, and conference identification will be inserted when the paper is included in the proceedings.

\begin{figure}[t]
\begin{minipage}[b]{1.0\linewidth}
  \centering
  \vspace{1.5cm}
  \centerline{(a) Result 1}\medskip
\end{minipage}
\begin{minipage}[b]{.48\linewidth}
  \centering
  \vspace{1.5cm}
  \centerline{(b) Results 2}\medskip
\end{minipage}
\hfill
\begin{minipage}[b]{0.48\linewidth}
  \centering
  \vspace{1.5cm}
  \centerline{(c) Result 3}\medskip
\end{minipage}
\caption{Example of placing a figure with experimental results.}
\label{fig:res}
\end{figure}

\section{Illustrations, Graphs, and Photographs}
\label{sec:illust}

Illustrations must appear within the designated margins. They may span the two columns. If possible, position illustrations at the top of columns, rather than in the middle or at the bottom. Caption and number every illustration. All halftone illustrations must be clear black and white prints.  Do not use any colors in illustrations.

Since there are many ways, often incompatible, of including images (e.g., with experimental results) in a \LaTeX document. Figure~\ref{fig:res} shows you an example of how to do this.

\section{Tables and Equations}

Tables and important equations must be centered in the column. Table~\ref{tab:cap} shows an example of a table while the equation
\begin{eqnarray}
y &=& ax^2+bx+c \nonumber \\
~ &=& (x+p)(x+q)
\end{eqnarray}
shows an example of an equation layout.

\begin{table}[t]
\begin{center}
\caption{Table caption} \label{tab:cap}
\begin{tabular}{|c|c|c|}
  \hline
 
  Column One & Column Two & Column Three
  \\
  \hline
  Cell 1 & Cell 2 & Cell 3 \\
  Cell 4 & Cell 5 & Cell 6 \\
  \hline
\end{tabular}
\end{center}
\end{table}

Large tables or long equations may span across both columns. Any table or equation that takes up more than one column width must be positioned either at the top or at the bottom of the page.

\section{Footnotes}

Use footnotes sparingly (or not at all!) and place them at the bottom of the column on the page on which they are referenced. Use Times 9-point type, single-spaced. To help your readers, avoid using footnotes altogether and include necessary peripheral observations in the text (within parentheses, if you prefer, as in this sentence).

\section{Citations and References}

List and number all bibliographical references at the end of the paper. The references can be numbered in alphabetic order or in order of appearance in the document. When referring to them in the text, type the corresponding reference number in square brackets as shown at the end of this sentence~\cite{Morgan2005}. All citations must be adhered to IEEE format and style. Examples such as~\cite{Morgan2005},~\cite{cooley65} and~\cite{haykin02} are given in Section 12.

\bibliographystyle{IEEEbib}

\section{Introduction}
Computer vision has become more and more popular in recent years. Image classification is an important branch of computer vision. Some works have achieved good results through supervised deep learning methods. But supervised deep learning requires a lot of labeled data for each class, which is unrealistic. As we all know, humans can learn a new category that has never been seen in the past through a few samples. Therefore, in order to allow computers to learn new classes through only a few samples like humans, people begin to focus on few-shot learning.

Few-shot learning is divided into base classes with a large number of labeled samples and novel classes with only a few labeled samples each class. The computer learns the essential representation of the object or the connection between the object and the background from base classes as prior knowledge, and then fine-tunes the network on novel classes to achieve the purpose of identifying novel classes. Most of the current methods promote few-shot learning by expanding the data size of novel classes or calculating the similarity between the samples in novel classes and base classes samples. Some work optimizes parameters to make the model converge quickly on novel classes. In recent years, some work has used self-supervision to improve few-shot learning \cite{DBLP:conf/iccv/GidarisBKPC19,su2019does}.

Self-supervised learning is a special kind of unsupervised learning, which does not require manually labeled data but uses part of the data itself to learn the hidden information of the data. The self-supervised learning labels is semi-automatically annotated during training the network. We only need to 'tell' the network how to label the data instead of manually labeling the data. The purpose of self-supervised learning is to promote the feature extractor, and then use the feature extractor to fine-tune downstream tasks (classification, detection, segmentation, etc.). 

Few-shot learning is limited by the number of labeled samples that cannot obtain sufficient class information, resulting in low classification accuracy. 
Therefore, how to obtain a large amount of information from a small number of samples has become the key to solving few-shot learning, which includes semantic information, context information, object structure information, appearance similarity information and so on. 
Self-supervised learning can solve this problem through unlabeled samples. 
We use the rotation self-supervised training network to extract semantic information because the model must understand what the object in the images is before the rotation angle of the images is predicted. 
Patches location self-supervision is used to learn the context information of images by predicting the relative position of two patches. 
Images are split and re-sorted in the jigsaw puzzle self-supervision, the model is trained to predict how the images are sorted, which requires the model to learn the structure of the object. 
Self-supervised clustering uses the appearance information of images to cluster unlabeled images to improve the ability of model to extract appearance similarity information. 
We further assume that semantic information, context information, object structure information, and appearance similarity information are complementary for few-shot learning. 
Therefore, we proposed adaptive combination of multiple self-supervision for few-shot learning. Specifically, rotation, patches location, jigsaw puzzle, clustering are applied in our work. 
In addition, \cite{DBLP:conf/eccv/CaronBJD18} uses the principal component analysis(PCA) and k-means method for clustering, which cannot be backpropagated. We propose a clustering method called GCN-FC that can backpropagate and update its parameters when training, which uses graph convolutional networks and three fully connected layers.
For the combination of multiple self-supervision, we use the attention mechanism to balance the importance of various self-supervision.

In general, our contributions in this work are mainly:
We propose an improvement of a new clustering self-supervised method, which has been proven effective in our work.
We combined four self-supervision to promote network to extract semantic information, context information, object structure information, appearance similarity information.Although one self-supervision is effective, we get the best results when four self-supervisions are used simultaneously.
We propose an attention model to enable the network to automatically learn the best weights for each self-supervised method, which avoids the possible reduction of effects caused by manual setting of weights.


\section{Related work}
\subsubsection{Few-shot learning. }
Few-shot learning divides dataset into base classes which have a large number of annotated samples and novel classes which have a small number of annotated samples. Base classes are used to learn common features and provide good initialization parameters for novel classes. The performance of the model on novel class is of major concern. The methods of few-shot learning can be roughly divided into three aspects: 1) data expansion 2)metric learning  3) parameter optimization 

The methods of data expansion are mostly achieved through the transformation of samples from novel classes. One approach augmented the data with samples from another weakly labeled or unlabeled datasets that contained objects with the same target labels as the novel classes.\cite{DBLP:conf/eccv/PfisterCZ14} tried learning a SVM for each novel class and then predicted target labels of weakly labeled or unlabeled samples. 

Metric learning aims to learn a class representation from support set samples then utilizes a metric method to distinguish different classes. Matching Networks\cite{DBLP:conf/nips/VinyalsBLKW16} learned the embedding function G of support set and the embedding function F of query set respectively.Prototypical Networks (ProtoNet)\cite{DBLP:conf/nips/SnellSZ17} used the mean value of all samples in embedding space as the prototypical representation for each class. The classification of novel classes was regarded as the nearest neighbor problem in embedding space.


Parameter optimization methods optimized the gradient descent algorithm so that the model can quickly adapt to new classes using only a few samples. Model-Agnostic Meta-Learning (MAML)\cite{DBLP:conf/icml/FinnAL17} is  a  classic method, however MAML provided the same initialization for all tasks. To solve this problem, \cite{DBLP:conf/icml/LeeC18} learned good initialization parameters for different tasks. To improve the refining procedure in MAML, regularization was used in \cite{DBLP:conf/eccv/GuiWRM18} to make the gradient descent direction more accurate.


\subsubsection{Self-supervised learning. }
Self-supervised learning is mainly learned in the form of pretrain-finetune.Unlike the supervised pretrain-finetune process, unsupervised data is used during pretraining. Then it finetunes the model which obtained in the pretraining according to the downstream tasks. The effect of self-supervised learning is judged mainly on the performance of downstream tasks. Self-supervised learning can be roughly divided into two branches: 1) pretext tasks 2) contrastive methods

Pretext task is used to explore the information about the data itself.In \cite{DBLP:conf/iclr/GidarisSK18}, unsupervised data was rotated to $0^\circ$, $90^\circ$, $180^\circ$, $270^\circ$, and the rotation angle was predicted in pretraining process.It meant that the model had known what an object was before it understood rotation.\cite{DBLP:conf/iccv/DoerschGE15,DBLP:conf/eccv/NorooziF16}  predicted relative position and arrangement of patches respectively.In addition, the combination of pseudo-labels of self-supervised learning with the labels of downstream tasks can improve the results\cite{DBLP:journals/corr/abs-1910-05872}.

By constructing positive samples and negative samples, self-supervised learning considers that the distance from samples to positive samples is less than the distance to negative samples.\cite{DBLP:conf/iclr/HjelmFLGBTB19} extracted deep representational information by maximizing mutual information.To reduce calculation, \cite{DBLP:conf/cvpr/WuXYL18} proposed the concept of memory bank. MoCo\cite{DBLP:journals/corr/abs-1911-05722} solved the problem of dictionary size and consistency of memory bank. SimCLR\cite{DBLP:journals/corr/abs-2002-05709} augmented the input data. Different augmentation of the same sample is positive, while different augmentation of different samples is negative. 

\begin{figure*}[t]
    \centering
    \includegraphics[width=0.8\textwidth]{framework.pdf}
    \caption{The framework for the first stage. 
    We train the feature extractor to use few-shot learning and self-supervised learning at the same time, which is implemented using a wide residual network. The network uses annotated images and unannotated images together as input. Two cosine similarity classifiers with weights (not sharing weights) are applied to classify the original images and the images divided into patches in the top branch respectively. In the bottom branch, unannotated images are converted through four self-supervised methods and pseudo-labels are obtained respectively. Then, four classifiers are used to obtain $L_{rot}$, $L_{loc}$, $L_{jig}$, $L_{clu}$. Finally, we learn the weights of each self-supervised loss through the attention mechanism.}
    \label{Fig.framework}
\end{figure*}
\section{Methods}
The training data for few-shot learning is divided into two parts: base classes and novel classes.
Each class in the base classes has a large amount of labeled data while training, and each class in the novel classes has only $K$ ($K = 1$ or $K = 5$ in this work) samples for training. It is worth noting that the base classes and the novel classes have no overlap. We denote a set of base classes $D_b = {(x, y)}$, where $x$ is an image from base classes which has a label $y$.The size of training set of base classes is defined as $N_b$. A training set of novel classes with a size of $N$ is defined as $D_n = {(x, y)}$, where $x$ is an image from base classes which has a label $y$. It is considered $N$-way $K$-shot learning.

\subsection{Framework}
In our work, few-shot learning is divided into two stages. During the first stage, we combine supervised classification learning and self-supervised auxiliary tasks to train feature extractor. Some works use self-supervised methods to train the network and then fine-tune the feature extractor in downstream tasks. But in \cite{DBLP:conf/iccv/GidarisBKPC19}, the few-shot learning and self-supervised learning in the first stage are carried out simultaneously, and it performs better. We consider that using  self-supervised learning and few-shot classification at the same time can dynamically optimize the feature extractor. Therefore, we follow this setting from \cite{DBLP:conf/iccv/GidarisBKPC19}.  

A framework for the first stage can be read in Figure \ref{Fig.framework}. We preprocess unlabeled images with different self-supervised methods at first. Then the labeled data and the transformed unlabeled data are input into the siamese network composed of wide residual networks (WRN) with weight sharing. After extracting features, the real labels are used to train images classifier and patches classifier and the pseudo labels from self-supervised methods are used to train different self-supervised classifiers. 
Here, We selected four specific self-supervised methods in order to simultaneously improve the feature extractor's ability to extract semantic, context, object structure and appearance information, namely rotation\cite{DBLP:conf/iclr/GidarisSK18}, patches location\cite{DBLP:conf/iccv/DoerschGE15}, jigsaw puzzle\cite{DBLP:conf/eccv/NorooziF16} and our GCN-FC clustering self-supervision. Later, we will introduce these self-supervised methods in detail. The total loss reads in this work:
\begin{equation}
    L_{total} = \alpha L_{few} + \beta L_{pat} + \lambda_1L_{rot} + \lambda_2L_{loc} + \lambda_3L_{jig} + \lambda_4L_{clu}
\end{equation}
where $\alpha, \beta, \lambda_1, \lambda_2, \lambda_3, \lambda_4$ are the weights of losses, where $\lambda_1, \lambda_2, \lambda_3, \lambda_4$ are scalars which learnt through attention model.

In the second stage, we freeze of feature extractor and remove auxiliary tasks in the experiments only keeping the few-shot learning classifier. Then we train the classifier with few-shot samples from novel classes.

\subsection{Few-shot learning branch}
In this section, we introduce our few-shot learning branch in detail. We use a representative method, Cosine Classifiers(CC)\cite{DBLP:conf/cvpr/GidarisK18,DBLP:conf/cvpr/QiBL18}, as a base method. Following \cite{DBLP:conf/iccv/GidarisBKPC19}, in the first stage, by only base classes, the method trains the feature extractor $F_\theta\left(\cdot\right)$, a convnet with parameters $\theta$, and a cosine-similarity based classifier with weights defined as $W_b = \left[w_1, ..., w_{N_b}\right]$. The mini-batch instances are randomly selected from base classes while training.Given an image $x$, we can get its scores:
\begin{equation}
    C(x;W_b) = softmax\left[\gamma \cos\left(F_\theta \left(x\right), W_b\right)\right]\label{cc}
\end{equation}
where $cos(\cdot, \cdot)$ is the cosine calculation, the scalar $\gamma$ is the inverse temperature parameter of the softmax operator.

The first stage learns $\theta$ and $W_b$ to minimize the following loss:
\begin{equation}
    L_{few}(\theta, W_b; D_b) = \underset{\left(x,y\right)\sim D_b}{\mathbb{E}} \left[-\log C_y\left(x;W_b\right)\right]\label{fewloss}
\end{equation}



\subsection{Self-supervised methods}
In this work, we consider four pretext tasks: rotation\cite{DBLP:conf/iclr/GidarisSK18}, patches location\cite{DBLP:conf/iccv/DoerschGE15}, jigsaw puzzle\cite{DBLP:conf/eccv/NorooziF16} and our GCN-FC clustering method improved from clustering method\cite{DBLP:conf/eccv/CaronBJD18}. For the rotation and patches location methods. We apply the same settings with \cite{DBLP:conf/iccv/GidarisBKPC19}.
\subsubsection{Rotation and patches location}
For rotation, we repeat an image $x$ four times and rotate them degrees in $R = \left\{0^{\circ}, 90^{\circ}, 180^{\circ}, 270^{\circ}\right\}$ respectively, which defined as $\left\{x_r | r \in R\right\}$, where $x_r$ is the image $x$ rotated by $r$ degrees. Then after extracting the features $F_\theta\left(x_r\right)$. a new classifier $C_{rot}$ is applied to predict the rotation degrees $r$. And we  define the loss of rotation task as:
\begin{equation}
    L_{rot}\left(\theta; D_u\right) = \underset{x \sim D_u}{\mathbb{E}}\left[\sum\limits_{\forall r \in R}-\log C_{rot}^{r}\left(F_\theta\left(x_r\right)\right)\right]\label{rotloss}
\end{equation}
where $D_u$ is unlabeled images used for rotation.In this work, $D_u$ is the same with $D_b$ except not using labels. $C_{rot}^r\left(\cdot\right)$ is the score for rotation $r$.

For patches location, we cut an image into 9 patches with a $3\times3$ grid. 
We sample the patch located in the centre of the image and denote $\hat{x}$.Then we label $\hat{x}^0, \cdots, \hat{x}^7$ in order beginning from the patch in the upper left corner in a clockwise direction. 
We extract features of patches with $F_\theta\left(\cdot\right)$ and make pairs $\left(F_\theta\left(\hat{x}\right), F_\theta\left(\hat{x}^l\right)\right)$ where $l \in [0, \cdots, 7]$.
 Then a new classifier $C_{loc}$ is used to predict the location of $\hat{x}^l$ from pairs. The loss is defined as:
\begin{equation}
    L_{loc}\left(\theta; D_u\right) = \underset{x \sim D_u}{\mathbb{E}}\left[\sum\limits_{l = 0}^{7}-\log C_{loc}^{l}\left(F_\theta\left(\hat{x}\right), F_\theta\left(\hat{x}^l\right)\right)\right]\label{locloss}
\end{equation}
where $D_u$ is training data and $C_{loc}^{l}\left(\cdot\right)$ is the score for location $l$. According to \cite{DBLP:conf/iccv/GidarisBKPC19}, aggressive color augmentation and a patches classification can improve the self-supervised method. So, we use the same settings in our work. Specifically, during the first stage, we merge all patches of an image with averaging and then apply cosine classifier(\ref{cc}) to the merged features(this claasifier does not share weights with the one in few-shot learning branch). 

\begin{table*}[t]
    \centering
   
    \begin{tabular}{c|c|c|c
        \hline
        Models&Backbone&1-shot&5-shot\\
        \hline 
        
        MAML\cite{DBLP:conf/icml/FinnAL17}&Conv-4-64&$48.70\pm 1.84\%$&$63.10\pm 0.92\%$\\
        PN\cite{DBLP:conf/nips/SnellSZ17}&Conv-4-64&$49.42\pm 0.78\%$&$68.20\pm 0.66\%$\\
        RelationNet\cite{DBLP:conf/cvpr/SungYZXTH18}&Conv-4-64&$50.40\pm 0.80\%$&$65.30\pm0.70\%$\\
        \hline
        MN\cite{DBLP:conf/icml/MunkhdalaiY17}&ResNet-12&$57.10\pm 0.70\%$&$70.04\pm 0.63\%$\\
        SNAIL\cite{DBLP:conf/nips/SantoroRBMPBL17}&ResNet-12&$55.71\pm 0.99\%$&$68.88\pm 0.92\%$\\
        TADAM\cite{oreshkin2018tadam}&ResNet-12&$58.50\pm 0.30\%$&$76.70\pm 0.30\%$\\
        MTL\cite{sun2019meta}&ResNet-12&$61.2\pm 1.8\%$&$75.5\pm 0.8\%$\\
        CTM\cite{li2019finding}&ResNet-12&$62.05\%$&$78.63\%$\\
        Deep DTN\cite{chen2020diversity}&ResNet-12&$63.45\pm 0.86\%$&$77.91\pm 0.62\%$\\
        \hline
        AFHN\cite{Li_2020_CVPR}&ResNet-18&$62.38\pm 0.72\%$&$78.16\pm 0.56\%$\\
        \hline
        SalNet Intra-class Hal.\cite{zhang2019few}&ResNet-101&$62.22\pm 0.87\%$&$77.95\pm 0.65\%$\\
        \hline
        baseline&WRN-28-10&$58.19\pm 0.45\%$&$76.42\pm 0.34$\\
        Qiao et al.\cite{DBLP:conf/cvpr/QiaoLSY18}&WRN-28-10&$59.60\pm 0.41\%$&$73.74\pm 0.19\%$\\
        LEO\cite{DBLP:conf/iclr/RusuRSVPOH19}&WRN-28-10&$61.76\pm 0.08\%$&$77.59\pm 0.12\%$\\
        wDAE-GNN$^\ddagger$\cite{gidaris2019generating}&WRN-28-10&$62.96\pm 0.15\%$&$78.85\pm 0.10\%$\\
        BF3S\cite{DBLP:conf/iccv/GidarisBKPC19}&WRN-28-10&$62.93\pm 0.45\%$&$79.87\pm 0.33\%$\\
        \hline
        Ours&WRN-28-10&\bm{$64.51\pm 0.47\%$}&\bm{$80.93\pm 0.33\%$}\\
        \hline
    \end{tabular}
    \caption{Comparison with state-of-the-art results on miniImageNet.The average accuracies of our method are obtained by testing 2000 episodes with $95\%$ confidence intervals.The results of methods with $\ddagger$ include training set and validation set for training models.}
    \label{table1}
    \end{table*}


\subsubsection{Jigsaw puzzle}
This task is similar to patches location. However, it is more difficult than the latter one. Here, we also divide an image into 9 patches with a $3 \times 3$ grid and denote $[\hat{x}^0, \cdots, \hat{x}^8]$. We apply the same preprocessing with patches location method. Then, the 9 patches are shuffled and rearranged in some specific permutations. This task aims to predict the permutation of patches. Specifically, given an image $x$, 9 patches which have a permutation of $\left[\hat{x}^0, \cdots, \hat{x}^8\right]$ are obtained. We select a randomly permutation as initiation and select a permutation which has biggest hamming distance with the initiation, then we continue selecting a permutation that has biggest average hamming distance with selected permutations until 64 permutations are selected defined as $J_p, p \in \left[0, \cdots, 63\right]$.The purpose is to make the 64 selected permutations as different as possible and the permutations to be representative. According to the selected permutations, we create feature pairs $F_\theta\left(J_p\right)$ by combining $F_\theta\left(\hat{x}^i\right)$ according to selected permutations, where $i \in \left[0, \cdots, 8\right]$.We train a new classifier $C_{jig}$ to predict $J_p$ from each pair.The loss of this task is:
\begin{equation}
    L_{jig}\left(\theta; D_u\right) = \underset{x \sim D_u}{\mathbb{E}}\left[\sum\limits_{p = 0}^{63}-\log C_{jig}^{p}\left(F_\theta\left(J_p\right)\right)\right]\label{jigloss}
\end{equation}
where $D_u$ is a set of images and $C_{jig}^{p}\left(\cdot\right)$ is the score of permutation $p$.

\begin{figure}[t]
    \centering
    \includegraphics[width=0.9\columnwidth]{clustering.pdf}
    \caption{Comparison of GCN-FC clustering self-supervision and k-means clustering self-supervision}
    \label{Fig.clustering}
\end{figure}
\subsubsection{GCN-FC Clustering}
Inspired by \cite{DBLP:conf/eccv/CaronBJD18}, we proposed a better performing clustering self-supervised method named GCN-FC clustering self-supervision. Like \cite{DBLP:conf/eccv/CaronBJD18}, we aim to cluster unlabeled instances and use the result as a pseudo-label for the data. The difference is that we use a deep learning network that can be backpropagated instead of k-means clustering method(shown in Figure \ref{Fig.clustering}). 

Specifically, A feature extractor which shares weights with the one in backbone is applied to get features of training set. we get features $X$ by combining features of all training images. Then we use a convolutional neural network to perform nonlinear transformations on features to improve the expressive ability of the model. Three fully connected layers are applied to classify the unlabeled data at last.The operation of convolutional neural network can be read as:
\begin{equation}
    F_{out} = AXw\label{gcn}
\end{equation}
where $A$ is the adjacency matrix, which is obtained by calculating the cosine similarity of each two image features. $w$ is a learnable matrix tensor. We put pseudo-labels on each image and re-input them into the backbone to get the loss of clustering self-supervision. Now, for an image $x$, we get features $F_\theta\left(x\right)$ by feature extractor and pseudo-label $\overline{y}$ by GCN-FC clustering self-supervision. A new classifier $C_{clu}$ is trained to predict pseudo-label of each image. The loss of GCN-FC clustering branch reads:
\begin{equation}
    L_{clu}(\theta; D_u) = \underset{\left(x,\overline{y}\right)\sim D_u}{\mathbb{E}} \left[-\log C_{clu}^{\overline{y}}\left(x\right)\right]\label{cluloss}
\end{equation}
where $D_u$ is unlabeled data from training set.Compared with the previous self-supervised methods, clustering self-supervised learning does not need to transform the input data, and the implementation is simpler. Essentially, the clustering algorithm is to aggregate similar samples in unlabeled data, that is, to learn the appearance similarity between samples. In \cite{DBLP:conf/eccv/CaronBJD18}, standard clustering algorithms such as k-means are applied to update the weights of the feature extractor. However, the k-means algorithm may cause the problem of empty clusters and unbalanced samples between clusters. Convolutional neural networks perform well in learning the connections between samples, and three fully connected layers are used as a classifier to solve the problems of empty clusters and uneven sample distribution.
If there is no special instructions, we set the clusters $k = 10$ in clustering self-supervision

\subsection{Attention model}
In this work, we simply set $\alpha=\beta=1.0$. But for $\lambda_1, \lambda_2, \lambda_3, \lambda_4$, we set them learnable scalars. Each self-supervised method has different importance for few-shot learning. When combining multiple self-supervised methods, manually setting weights for each self-supervised method may not achieve the best effect. Therefore, we propose an attention mechanism to automatically learn the weights of each self-supervised method. However, directly learning the four weights through the deep network will cause the problem of gradient disappearance, so we constrain these scalars through a sigmoid function. Then, we found that constraining the weight to be between 0 and 1 will cause the effect to decrease. This may be because the weight is too small and the loss of self-supervision cannot be effectively reduced. So, we add 1 to the scalar after the sigmoid function to keep the weights $1 < \lambda_1, \lambda_2, \lambda_3, \lambda_4 < 2$.
Mathematically, The attention model is defined as:
\begin{equation}
    L_{att} = L_{self} \times \left(S\left(\sigma\right) + 1\right)\label{att}
\end{equation}
where $L_{self}$ is any one self-supervised loss of rotation, patches location, jigsaw puzzle and clustering self-supervision. $L_{att}$ is 
corresponding loss after attention model. $S(\cdot)$ is a sigmoid function and $\sigma$ is a learnable scalar.

\begin{table*}[t]
    \centering
   
   
    \begin{tabular}{c|c|c|c
        \hline
        Models&Backbone&1-shot&5-shot\\
        \hline 
        PN$^\dagger$\cite{DBLP:conf/nips/SnellSZ17}&ResNet-12&$61.74\pm 0.77\%$&$80.00\pm 0.55\%$\\
        CTM$^\dagger$\cite{li2019finding}&ResNet-12&$64.78\pm 0.11\%$&$81.05\pm 0.52\%$\\
        MetaOpt-SVM$^\ddagger$\cite{lee2019meta}&ResNet-12&$65.81\pm 0.74\%$&$81.75\pm 0.53\%$\\
        DSN-MR$^\ddagger$\cite{simon2020adaptive}&ResNet-12&$68.44\pm 0.77\%$&$83.32\pm 0.66\%$\\
        \hline
        wDAE-GNN$^\ddagger$\cite{gidaris2019generating}&WRN-28-10&$68.18\pm 0.16\%$&$83.10\pm 0.12\%$\\
        LEO$^\ddagger$\cite{DBLP:conf/iclr/RusuRSVPOH19}&WRN-28-10&$66.33\pm 0.05\%$&$81.44\pm 0.09\%$\\
        BF3S\cite{DBLP:conf/iccv/GidarisBKPC19}&WRN-28-10&$70.38\pm 0.50\%$&$85.23\pm 0.35\%$\\
        \hline
        Ours&WRN-28-10&\bm{$70.35\pm 0.51\%$}&\bm{$84.90\pm 0.36\%$}\\
        \hline
    \end{tabular}
   
    \caption{Comparison with state-of-the-art 5-way results on tieredImageNet.The average accuracies of our method are obtained by testing 2000 episodes with $95\%$ confidence intervals. The results of methods with $\dagger$ are from \cite{simon2020adaptive}. The results of methods with $\ddagger$ are from \cite{simon2020adaptive} and include training set and validation set for training models.}
    \label{table2}
    \end{table*}



\begin{table}[t]
\centering
\resizebox{.95\columnwidth}{!}{
\begin{tabular}{c|c|c
    \hline
    Methods&1-shot&5-shot\\
    \hline
    rot+loc+jig+k-means&$63.95\pm 0.46\%$&$80.10\pm 0.34\%$\\
    \hline
    rot+loc+jig+GCN-FC&\bm{$64.51\pm 0.47\%$}&\bm{$80.93\pm 0.33\%$}\\
    \hline
\end{tabular}
}
\caption{Comparison with unimproved clustering self-supervision on miniImageNet.The average accuracies of our method are obtained by testing 2000 episodes with $95\%$ confidence intervals. \textbf{rot+loc+jig+GCN-FC} is the approach we propose in this work. \textbf{rot+loc+jig+k-means} means that we replaced GCN-FC with k-means.}
\label{table3}
\end{table}







\section{Experiments}

In this section, we will introduce the details of the experiments and report the results of our experiments. We evaluate and contrast our method against state-of-the-art methods on two representative few-shot datasets,namely miniImageNet\cite{DBLP:conf/nips/VinyalsBLKW16}, tieredImageNet\cite{DBLP:conf/iclr/RenTRSSTLZ18}. 

\subsection{Datasets}
\subsubsection{MiniImageNet} datasets have 60000 images with size of $84 \times 84$ pixels in total. There are 100 classes selected from ImageNet\cite{DBLP:journals/ijcv/RussakovskyDSKS15} and 600 images each class. Among the 100 classes, 64 classes are used as base classes, 16 classes are used as validation classes, and 20 classes are used as novel classes in the second stage.

\subsubsection{TieredImageNet} are also obtained from ImageNet. Compared with miniImageNet, tieredImageNet contains larger-scale data. There are 779,165 images from 608 classes with size of $84 \times 84$ pixels, which divided into 351 training base classes, 97 validation classes and 160 novel testing classes. 
For self-supervision branch, we use 64000 unlabeled images on both miniImageNet and tieredImageNet in the first stage. 


\subsection{Implementation details}

\subsubsection{Training details of the first stage} 
In our work, we do the same data preprocessing on miniImageNet and tieredImageNet. The original image used for classification is resized to $80\times 80$ pixels. In order to crop the appropriate patches, we resize the image to $96\times 96$ pixels, and then use a $3\times 3$ grid to divide the image into $32\times 32$ patches. The harder a self-supervised pretext task is, the more downstream tasks can be improved. Therefore, a border jitter is applied with patches. The size of patches is $24\times 24$ pixels that we finally get.
We use stochastic gradient descent (SGD) to optimize $L_{total}$. For all classifiers, we set $momentum = 0.9$, $weight\_decay = 5e-4$. On the miniImageNet dataset, we train the model by 30 epoches. We use a learning rate of 0.1 before the 23rd epoch, dropping to 0.01 from the 23rd epoch to the 26th epoch, and 0.001 after the 26th epoch. On tieredImagNet, we train the model by 70 epoches. The learning rate was reduced to 0.01 from 0.1 in the 40th epoch, and to 0.001 in the 60th epoch.

\subsubsection{Evaluation method} In the second stage of few-shot learning, we freeze the parameters of the feature extractor and only keep the few-shot branch, namely $L_{total} = L_{few}$. The second stage is divided into two phases: few-shot training and testing. In the few-shot training phase, for $N$-way $K$-shot few-shot learning, we select $N$ classes from the novel class each time. $K$ samples are randomly sampled from the selected $N$ classes to fine-tune the classifier with weights. In the testing phase, we select $N\times T$ samples in the base classes and the novel classes each time, where $T$ means that each class selects $T$ samples (the training samples and the test samples in the novel classes do not overlap). In our experiments, we use $N = 5$, $K = 1$ or $5$ ($5$-way $1$-shot or $5$-way $5$-shot), and $T = 15$ if not specifically stated. We evaluate the model through a large number of test tasks, and use the average  accuracies of all test tasks as the final results.

\subsection{Results of few-shot learning}

We apply our methods on miniImageNet datasets and tieredImageNet datasets. The wide residual network is used as a feature extractor, which has the same structure as the one in \cite{DBLP:conf/iccv/GidarisBKPC19}.  We train 5-way 1-shot and 5-way 5-shot in our work and report the results in Table\ref{table1} that compared with the state-of-the-art works on miniImageNet. For baseline, we simply use few-shot learning branch in both two stage. 
The results prove the effectiveness of our method. It can be seen from Table\ref{table1} that our method is $1.58\%$ higher than that of BF3S and much better than other early methods.



Table\ref{table2} reports the average 5-way accuracies on novel classes of tieredImageNet. Compared with the most advanced DSN-MR method, our method outperform by 1.91 percentage points in 5-way 1-shot learning and 1.58 percentage points in 5-way 5-shot learning. More difficult than DSN-MR, we only use the training set to train the model and freeze the backbone network during verification. Nevertheless, our method achieves the best effect on tieredImageNet. It is worth noting that the $95\%$ confidence interval of our method is smaller than that of DSN-MR, which means that our method performs more robustly in 5-way few-shot learning on tiereImageNet.

Table\ref{table3} contrasts our GCN-FC clustering method with the clustering methods in \cite{DBLP:conf/eccv/CaronBJD18} on miniImageNet. We define rotation method, patches location method, jigsaw puzzle method, clustering method in \cite{DBLP:conf/eccv/CaronBJD18}, clustering method which we propose as \textit{rot}, \textit{loc}, \textit{jig}, \textit{k-means}, \textit{GCN-FC} respectively.
We use the same settings for all classification and self-supervised methods except cluster self-supervision. 
For the clustering self-supervised method, we do experiments with k-means clustering and our GCN-FC clustering respectively. Assume that images used for clustering are extracted as $d$-dimensional features. We use the principal component analysis (PCA) method to preprocess the features in the k-means method nad the feature dimension is reduced to 256 dimensions. We set $k = 10$ in k-means, namely cluster all features into 10 classes. On GCN-FC, we use kaiming uniform distribution to initialize a $d\times d$-dimensional learnable parameter $w$ in the convolutional neural network, keeping the output dimension of the network as $d$. The output dimensions of the three fully connected layers are 512, 256, and 10.
It is evident our method improves the representation extraction abilities of feature extractors.

\begin{table}[t]
    \centering
    \resizebox{.95\columnwidth}{!}{
    \begin{tabular}{c|c|c
        \hline
        Methods&1-shot&5-shot\\
        \hline
        rot+loc+jig&$63.99\pm 0.47\%$&$79.94\pm 0.35\%$\\
        \hline
        rot+loc+jig+GCN-FC&\bm{$64.51\pm 0.47\%$}&\bm{$80.93\pm 0.33\%$}\\
        \hline
    \end{tabular}
    }
    \caption{Experiments with or no GCN-FC clustering branch on miniImageNet.The average accuracies of our method are obtained by testing 2000 episodes with $95\%$ confidence intervals. \textbf{rot+loc+jig+GCN-FC} is the approach we propose in this work. we remove GCN-FC clustering self-supervision on \textbf{rot+loc+jig}.}
    \label{table4}
    \end{table}

\begin{table}[t]
    \centering
    \resizebox{.95\columnwidth}{!}{
    \begin{tabular}{c|c|c
        \hline
        Methods&1-shot&5-shot\\
        \hline
        baseline&$58.19\pm 0.45\%$&$76.42\pm 0.34$\\
        \hline
        rot&$62.81\pm 0.46\%$&$80.01\pm 0.34\%$\\
        \hline
        loc&$60.70\pm 0.47\%$&$77.61\pm 0.33\%$\\
        \hline
        jig&$61.16\pm 0.47\%$&$77.86\pm 0.35\%$\\
        \hline
        k-means&$58.66\pm 0.45\%$&$76.62\pm 0.35\%$\\
        \hline
        GCN-FC&$60.41\pm 0.46\%$&$77.46\pm 0.34\%$\\
        \hline
    \end{tabular}
    }
    \caption{Contrastion of each self-supervised branch on miniImageNet. The average accuracies of our method are obtained by testing 2000 episodes with $95\%$ confidence intervals.}
    \label{table5}
    \end{table}

\subsection{Ablation study}
In order to further prove the effectiveness of our proposed method, we do some ablation studies. Some clustering settings and self-supervised methods will be discussed in this section.

\begin{figure}[t]
    \centering
    \includegraphics[width=0.9\columnwidth]{1-shot_k_GCN-FC.pdf}
    \caption{1-shot accuracies of different clusters in clustering self-supervision on miniImageNet.}
    \label{Fig.1-shot_k_GCN-FC}
\end{figure}
\begin{figure}[t]
    \centering
    \includegraphics[width=0.9\columnwidth]{5-shot_k_GCN-FC.pdf}
    \caption{5-shot accuracies of different clusters in clustering self-supervision on miniImageNet.}
    \label{Fig.5-shot_k_GCN-FC}
\end{figure}

\subsubsection{Clustering.} To explore the impact of GCN-FC clustering branch we proposed, we run the experiments with no GCN-FC clustering branch on miniImageNet. We illuminate the results in table\ref{table4}. 
The average accuracy over 2000 episodes on miniImageNet dropped by 0.52 percentage points in 5-way 1-shot learning and 0.99 percentage points in 5-way 5-shot learning.
We report average accuracies when we use different number of clusters $k$ in GCN-FC clustering self-supervision on miniImageNet in Figure\ref{Fig.1-shot_k_GCN-FC} and Figure\ref{Fig.5-shot_k_GCN-FC}. The results illustrate the number of clusters in GCN-FC clustering self-supervision has a small impact on accuracy. And when $k = 10$, we get best results in both 1-shot and 5-shot (5-way) learning.

\subsubsection{Self-supervision.} We used one self-supervised branch at a time to conduct comparative experiments on miniImageNet. In the rotation prediction self-supervised and patches location self-supervised branches, we simply use the models provided in \cite{DBLP:conf/iccv/GidarisBKPC19}. The accuracy of each self-supervised method in 5-way 1-shot and 5-way 5-shot few-shot learning is reported in Table \ref{table5}. The results in the table\ref{table5} show that all self-supervised methods can improve few-shot learning and a combination of multiple self-supervision can further promote the improvement of accuracy. In addition, although a single self-supervised method is used, our proposed GCN-FC clustering self-supervised outperform k-means clustering self-supervised by $1.97\%$.



\section{Conclusion}
Based on the effectiveness of self-supervised methods for few-shot learning, we propose an approach of combining multiple self-supervised methods with adaptive weights for each self-supervised method rather than manually setting. We carefully select four self-supervised methods that are used to mining different dimension information to conduct detailed experiments on the miniImageNet dataset and tieredImageNet dataset. Besides, we propose an improvement based on deep leaning clustering self-supervised method.  We utilize the GCN-FC clustering method instead of traditional unsupervised clustering methods such as k-means which is non-parametric and can not be backpropagated. The experimental results show that the adaptive combination of multiple self-supervision helps to train a reliable feature extractor and an efficient classifier. The result also proves that our clustering self-supervised method is robust and extracts more discriminative visual representation than the traditional unsupervised clustering self-supervision.



\section{Introduction}
\label{sec:intro}
Traditional standard CNN-based models contain millions of parameters \cite{WeiOccluded2020,Qin_2020_pr,qin2019forward,qin2020bipointnet,zhang2021diversifying}, causing problems in many practical works, e.g., developing real-time interactive vision applications for portable devices, transferring knowledge from existing models to novel categories without re-training, etc. On the contrary, learning novel concepts from few examples is an interesting and challenging task with many practical advantages. In the past years, a variety of few-shot learning methods have been proposed, making great attempts to utilize the information contained in the limited labeled data.

The training data of few-shot learning is divided into base classes with a large number of labeled samples and novel classes with only a few labeled samples. Few-shot learning models acquire transferable visual analysis abilities, the typical process of which is learning representations from base classes and fine-tuning the network on novel classes to achieve the purpose of recognizing novel classes.

Most of the previous methods promote few-shot learning by expanding the amount of data of novel classes or calculating the similarity between the samples in novel classes and base classes. Optimization-based solution, as one of the most popular few-shot learning paradigms, tries to capture the relation information among the tasks, leveraging the previous learning experience as prior knowledge over tasks. Generation-based methods adopt a meta-learner for few-shot data augmentation or learn to predict classification weights for novel classes. Metric-based solution serves as another promising few-shot learning paradigm, which exploits the feature similarity information by embedding both support and query samples into a shared feature space.

Self-supervised learning is a special subcategory of unsupervised learning, which does not require manually labeled data but uses only the visual information presented in images. ``Labels'' in self-supervised learning are semi-automatically annotated during training process. The only work is to ``tell'' the network how to label the data instead of manually labeling the data. The purpose of self-supervised learning is to improve the ability of representing visual information and generate a satisfactory feature extractor, which can transfer visual analysis in other tasks. Inspired by the similarity of few-shot and self-supervised learning, some works \cite{DBLP:conf/iccv/GidarisBKPC19,su2019does} have weaved self-supervision into the training process of few-shot learning. However, existing works which integrate the two methods above usually adopt a single self-supervised method or simple fusion for multiple self-supervised methods, causing the performance to be not satisfactory.

In this work, towards improving the performance of few-shot visual learning with self-supervision, we propose a self-supervised attention network named \textbf{M}ulti-pretext \textbf{A}ttention \textbf{N}etwork (MAN), combining two types of self-supervised methods (augmentation-relied and augmentation-free) to extract the complementary information that usually neglected by one single style of self-supervised method. MAN generates an attention map to adaptively adjust the proper weights for each self-supervised method by 
endowing larger weights for ones influencing the classification objective heavily. In addition, we propose the Graph-driven Clustering method as a new clustering method for self-supervised learning by exploiting the graph convolutional network and three fully connected network layers to dynamically tune the distances between two samples. The parameters of this new clustering method are learnable, which addresses the problem of lacking back-propagation in traditional clustering methods like K-means \cite{DBLP:conf/eccv/CaronBJD18}.

The main contributions of this work are as follows:
\begin{itemize}
    \item We weave self-supervision into the training process of few-shot learning by proposing a self-supervised attention network named \textbf{M}ulti-pretext \textbf{A}ttention \textbf{N}etwork (MAN), combining augmentation-relied and augmentation-free self-supervised methods and adaptively learning the proper weights for each one by endowing larger weights for ones influencing the classification objective heavily.
    \item We propose a new clustering self-supervised method named \textbf{G}raph-driven \textbf{C}lustering (GC) in MAN by exploiting the graph convolutional network, which does not rely on auxiliary samples and utilizes the endogenous correlation information among input samples.
    \item We conduct extensive experiments on \textit{mini}ImageNet and \textit{tiered}ImageNet datasets and the results demonstrate that our method can significantly outperform a variety of the SOTA few-shot learning methods.
\end{itemize}
\section{Related work}
\noindent\textbf{Few-shot Learning.} Recently, many few-shot learning methods have been proposed. We categorize few-shot learning methods roughly into two aspects: metric learning and parameter optimization. Based on metric learning, Prototypical Networks \cite{DBLP:conf/nips/SnellSZ17} uses the average value of all samples in embedding space as the prototypical representation for each class. The classification of novel classes is regarded as the nearest neighbor problem in embedding space.
Parameter optimization methods optimize the gradient descent algorithm so that the model can quickly adapt to novel classes using only a few samples. Model-Agnostic Meta-Learning (MAML) \cite{DBLP:conf/icml/FinnAL17} is  a  classic method, however, it provides the same initialization for all tasks. To solve this problem, \cite{DBLP:conf/icml/LeeC18} learns good initialization parameters for different tasks. To improve the refining process in MAML, regularization is used in \cite{DBLP:conf/eccv/GuiWRM18} to make the gradient descent direction more accurate.



\noindent\textbf{Self-supervised learning.} Self-supervised learning uses the information of the data itself to form pseudo labels when training. And it
can be roughly divided into two branches: methods based on pretext tasks and methods based on contrastive methods.
Pretext task is used to explore the information about the data itself. In \cite{DBLP:conf/iclr/GidarisSK18}, images is rotated to $0^\circ$, $90^\circ$, $180^\circ$, $270^\circ$, and the rotation angles are predicted in pretraining process.
\cite{DBLP:conf/iccv/DoerschGE15,DBLP:conf/eccv/NorooziF16}  predict relative position and arrangement of patches respectively. 
By constructing positive samples and negative samples, self-supervised learning based on contrastive methods considers that the distance from samples to positive samples is less than the distance to negative samples. \cite{DBLP:conf/iclr/HjelmFLGBTB19} extracts deep representational information by maximizing mutual information. To reduce calculation, \cite{DBLP:conf/cvpr/WuXYL18} proposes the concept of memory bank. MoCo \cite{DBLP:journals/corr/abs-1911-05722} solves the problem of dictionary size and consistency of memory bank. 

\begin{figure*}[t]
    \centering
    \vspace{-0.4in}
    \includegraphics[width=\textwidth]{framework.pdf}
    \vspace{-0.3in}
    \caption{The framework for the first stage. 
    We train the feature extractor to use few-shot learning and self-supervised learning at the same time, which is implemented using a wide residual network. In the bottom path, there is a supervised classification learning. In the top path, unlabeled images are converted through two types of self-supervised methods and pseudo-labels are obtained respectively. Then, the multi-pretext attention mechanism adaptively learns the weights of the classifiers for different self-supervised methods.}
    \label{Fig.framework}
\end{figure*}


\section{Methods}
Common accepted practice for data augmentation is to perform a combination of geometric transformations for each single sample, which can be regarded as a kind of data augmentation and we define this type of self-supervised methods as \textit{augmentation-relied methods}. 
Our study shows that the endogenous correlation information among samples is also important to improve the model accuracy, while it is ignored by existing augmentation-relied methods.
In this work, we propose a Graph-driven Clustering method as the \textit{augmentation-free methods}, which does not generate any auxiliary samples and uses the original information of the input samples. The proposed method is able to be combined with various augmentation-relied methods (Rotation \cite{DBLP:conf/iclr/GidarisSK18}, Patches Location \cite{DBLP:conf/iccv/DoerschGE15}, Jigsaw puzzle \cite{DBLP:conf/eccv/NorooziF16}). In this section, we first introduce the preliminary of few-shot setting, and then give details to the framework and each part of our MAN.

\subsection{Preliminary}
The training data for few-shot learning is divided into two parts: base classes and novel classes. Let $D_b$ donates the training set of base classes, which contains $N_b$ different image classes $\left(\mathcal{C}_1,\mathcal{C}_2,\cdots,\mathcal{C}_{N_b}\right)$ and each class of $D_b$ has a large amount of labeled images. Also, $D_n$ donates the training set of $N_n$ classes (selected from novel classes) and each class of $D_n$ has $K$ labeled samples ($K$ = 1 or 5 in benchmarks). This setting is also called $N_n$-way $K$-shot classification. Note that the base classes and the novel classes are disjoint.

\subsection{Framework}
The framework of MAN is illustrated in Fig. \ref{Fig.framework}. In the first stage of few-shot learning, we combine supervised classification learning (the bottom path in Fig. \ref{Fig.framework}) and two types of self-supervised auxiliary methods (the top path in Fig. \ref{Fig.framework}) to train the feature extractor.
First, we input the labeled data and the unlabeled data into the Wide Residual Networks (WRN) \cite{zagoruyko2016wide} by two paths with weight sharing. Second, we preprocess the features of unlabeled images with augmentation-free method (our Graph-driven Clustering) and augmentation-relied self-supervised methods (Rotation \cite{DBLP:conf/iclr/GidarisSK18}, Patches Location \cite{DBLP:conf/iccv/DoerschGE15}, Jigsaw puzzle \cite{DBLP:conf/eccv/NorooziF16}). After extracting features by the network, the labels of the path below are used to train the classifier. And the pseudo labels of the path above are used to train the self-supervised classifiers. Here, suppose $L_{base}$ is the loss function of conventional few-shot learning method with labeled data. and $L_{s1}, L_{s2}, L_{s3}, L_{GC}$ donate the loss functions of the three self-supervised methods mentioned above and our graph-driven self-supervised clustering method, respectively. The total loss of the whole network  $L_{total}$ can be calculated by the following equation:

\begin{equation}
    L_{total} = \underset{i\sim \mathcal{I}}{\sum}\lambda_i L_{i}
\end{equation}
where $\mathcal{I} = \left\{base, s1, s2, s3, GC\right\}$ and $\lambda$ is the corresponding weight of each loss, meaning different contributions of methods to the final performance.
The proper values of all weights to make the whole network achieve the best performance will be adaptively learned by the multi-pretext attention mechanism that we introduce details in Section 3.3.

In the second stage, first, we freeze the trained parameters of feature extractor in order to keep the visual representation ability learned in the first stage. Second, we remove auxiliary models of self-supervised learning in the top path in Fig. \ref{Fig.framework} but remain the few-shot learning classifiers in the bottom path. Finally, we train the few-shot learning classifiers with samples of novel classes in $D_n$.

\subsection{Multi-pretext Attention Mechanism}
For the parameters $\lambda_{base}, \lambda_{s1}, \lambda_{s2}, \lambda_{s3}, \lambda_{GC}$, we simply set $\lambda_{base}=1.0$ because it is from traditional few-shot learning models. On the contrary, $\lambda_{s1}, \lambda_{s2}, \lambda_{s3}, \lambda_{GC}$ are learnable scalars. These parameters mean that the four self-supervised methods contribute differently to the performance of the network.
Combining multiple self-supervised methods with manually setting their weights may not achieve satisfactory performance. Besides, directly learning the weights through the deep network will cause the problem of vanishing gradient. Therefore, based on the above considerations, we propose an attention mechanism to automatically learn the weights of each self-supervised model and constrain these scalars through a sigmoid function. Further, we add 1 to each scalar outputted of the sigmoid function to keep the weights $1 < \lambda_{s1}, \lambda_{s2}, \lambda_{s3}, \lambda_{GC} < 2$ to address the problem that constraining the weight to be between 0 and 1 causes the performance to decrease. Raising the range of weight effectively reduces the loss of self-supervision, which achieves a higher accuracy.
Mathematically, the multi-pretext attention mechanism can be formulated as follows:
\begin{equation}
\mathbf{S_\lambda}=\sigma(\mathbf{L}) = \frac{1}{1+e^{-\mathbf{L}}}
\end{equation}

\begin{equation}
    L_{self} = \mathbf{L} \times \left(\mathbf{S_\lambda} + \mathbf{I}\right)\label{att}
\end{equation}
where $\mathbf{L}$ is the loss matrix consisting of four losses generated by our Graph-driven Clustering and three other traditional self-supervised models. $\mathbf{S}_\lambda$ refers to the attention map generated by our mechanism and $\mathbf{I}$ refers to the identity matrix. $L_{self}$ is the final loss of the self-supervised methods after refined we expected.

\subsection{Graph-driven Clustering}


Now we formally introduce our Graph-driven Clustering algorithm. We construct an undirected graph $\textbf{G}=\left(\textbf{V},\textbf{E}\right)$, where $\textbf{V}=\left\{\mathcal{V}_1,\dots,\mathcal{V}_{N_v}\right\}$ and $\textbf{E}=\left\{\mathcal{E}_1,\dots,\mathcal{E}_{N_e}\right\}$.
$N_v$ refers to the number of nodes in the graph and ${N_e}$ refers to the number of edges, where ${N_e}=\frac{N_v(N_v-1)}{2}$ because every two nodes have an edge connection in this graph. Note that each node represents a training sample and the value of edge between the two nodes refers to the similarity of them. We initialize the adjacency matrix $\mathbf{A}$ by calculating the cosine similarity of each two samples as follows:
\begin{equation}
    \mathbf{A}_{ij}=\mathbf{A}_{ji}=\cos\left(\mathcal{V}_i,\mathcal{V}_j\right)
\end{equation}
where $\mathbf{A}_{ij}$ refers to the value of the edge between $\mathcal{V}_i$ and $\mathcal{V}_j$.

Motivated by \cite{DBLP:conf/eccv/CaronBJD18}, we cluster unlabeled samples and use the result as a pseudo-label for each sample. Different from this mechanism, we exploit the graph neural network with gradient back-propagation instead of traditional clustering method like K-means without gradient back-propagation (the comparison is illustrated in Figure \ref{Fig.clustering}). 
Specifically, the feature extractor of our Graph-driven Clustering shares weights with the one in backbone network, generating feature maps of training samples. The input feature matrix, $\mathbf{X} \in \mathrm{R}^{N_v \times F \times 1 \times 1}$ where $F$ is the number of features per node, contains features of all training samples. Then we use a convolutional neural network to perform nonlinear transformations on features to improve the expression ability of the model. Finally, three fully connected layers represented as $\tau^3\left(\cdot\right)$ are applied to classify the unlabeled data.
\begin{equation}
    \mathbf{Y}_{lab} = \tau^3(\mathbf{A}\mathbf{X}\mathbf{W}+\textbf{b})
    \label{gcn}
\end{equation}
where $\mathbf{W}$ is the weight matrix and \textbf{b} is a bias matrix. Besides, $\mathbf{Y}_{lab}$ refers to the pseudo-labels generated.

Now, we input each sample $x$ and its pseudo-label $\overline{y}$ generated by our Graph-driven Clustering method to train a new classifier $C_{g}$. The loss of Graph-driven Clustering is formulated as follow:
\begin{equation}
    L_{GC}(\theta; D_u) = \underset{\left(x,\overline{y}\right)\sim D_u}{\mathbb{E}} \left[-\log C_{g}^{\overline{y}}\left(x\right)\right]\label{cluloss}
\end{equation}
where $D_u$ consists of the unlabeled samples from training set $D_b$.



   

  



  

   



   

\begin{figure}[t]
\vspace{-0.1in}
    \centering
    \includegraphics[width=0.9\columnwidth]{clustering.pdf}
    \vspace{-0.2in}
   
    \caption{Comparison of GC self-supervision and K-means clustering self-supervision}
    \label{Fig.clustering}
\end{figure}





\section{Experiments}



In this section, we conduct comprehensive experiments on \textit{mini}ImageNet and \textit{tiered}ImageNet datasets to evaluate the effectiveness of our MAN.

\subsection{Datasets}
\textbf{MiniImageNet} consists of 100 classes (64 for training, 16 for validation, and 20 for testing), randomly selected from ImageNet dataset \cite{DBLP:journals/ijcv/RussakovskyDSKS15}. And each class contains 600 images with size of $84 \times 84$ pixels. \textit{Tiered}ImageNet consists of 608 classes (351 for training, 97 for validation, and 160 for testing), also randomly selected from ImageNet dataset. And there are 779165 images with size of $84 \times 84$ pixels in \textit{tiered}ImageNet.

\subsection{Implementation details}

\noindent\textbf{Training in the First Stage.} 
In all experiments following, we apply the same data preprocessing on \textit{mini}ImageNet and \textit{tiered}ImageNet, which resizes the images to $80\times 80$ pixels. In order to get appropriate patches after cropping, we resize the images to $96\times 96$ pixels and then use a $3\times 3$ grid to divide the image into 9 patches with size of $32\times 32$. A harder self-supervised pretext task can help the feature extractor learn universal features, which makes the classifier more stronger and performs better in downstream tasks. Inspired by this, we apply a border jitter with patches and the patch size is set as $24\times 24$.

\noindent\textbf{Evaluation in the Second Stage.} We freeze the parameters of the feature extractor and only keep the few-shot branch ($L_{total} = L_{base}$). The second stage can be divided into two phases: few-shot training and testing. 
In the training phase, we select $N$ classes from the novel classes each time, and randomly sample $K$ samples from the selected $N$ classes to fine-tune the classifier, so as-called $N$-way $K$-shot few-shot learning. In the testing phase, we select $N\times T$ samples in the novel classes each time, where $T$ means that each class selects $T$ samples (the training samples and the test samples in the novel classes are disjoint). Note that in our experiments, we use $N = 5$, $K = 1$ and $5$ ($5$-way $1$-shot and $5$-way $5$-shot) and $T = 15$, which are standard few-shot learning settings. We evaluate our MAN through a large number of test tasks and calculate the average accuracy of all test tasks as the final results.

\begin{table}[t]
    \centering
   
    \setlength{\tabcolsep}{0.7mm}{
    \small
    \begin{tabular}{lccc
        \hline
        Models&Backbone&1-shot(\%)&5-shot(\%)\\
        \hline 
        
        MAML \cite{DBLP:conf/icml/FinnAL17}&Conv-4-64&$48.70\pm 1.84$&$63.10\pm 0.92$\\
        PN \cite{DBLP:conf/nips/SnellSZ17}&Conv-4-64&$49.42\pm 0.78$&$68.20\pm 0.66$\\
        RelationNet \cite{DBLP:conf/cvpr/SungYZXTH18}&Conv-4-64&$50.40\pm 0.80$&$65.30\pm0.70$\\
        MAN(Ours)&Conv-4-64 & \textbf{51.30} $\pm$ 0.45& \textbf{68.21}  $\pm$ 0.37 \\
        \hline
        MN \cite{DBLP:conf/icml/MunkhdalaiY17}&ResNet-12&$57.10\pm 0.70$&$70.04\pm 0.63$\\
        SNAIL \cite{DBLP:conf/nips/SantoroRBMPBL17}&ResNet-12&$55.71\pm 0.99$&$68.88\pm 0.92$\\
        TADAM \cite{oreshkin2018tadam}&ResNet-12&$58.50\pm 0.30$&$76.70\pm 0.30$\\
        BF3S \cite{DBLP:conf/iccv/GidarisBKPC19}&ResNet-12&$60.76\pm 0.45$&$78.02\pm 0.34$\\
        MTL \cite{sun2019meta}&ResNet-12&$61.20\pm 1.80$&$75.50\pm 0.80$\\
       
       

        MAN(Ours)& ResNet-12 & \textbf{61.70} $\pm$ 0.47& \textbf{78.42 }$\pm$ 0.34 \\
        \hline
       
       
       
       
        CC \cite{DBLP:conf/cvpr/GidarisK18,DBLP:conf/cvpr/QiBL18}&WRN-28-10&$58.19\pm 0.45$&$76.42\pm 0.34$\\
        Qiao et al. \cite{DBLP:conf/cvpr/QiaoLSY18}&WRN-28-10&$59.60\pm 0.41$&$73.74\pm 0.19$\\
        LEO \cite{DBLP:conf/iclr/RusuRSVPOH19}&WRN-28-10&$61.76\pm 0.08$&$77.59\pm 0.12$\\
        BF3S \cite{DBLP:conf/iccv/GidarisBKPC19}&WRN-28-10&$62.93\pm 0.45$&$79.87\pm 0.33$\\
        wDAE-GNN$^\ddagger$ \cite{gidaris2019generating}&WRN-28-10&$62.96\pm 0.15$&$78.85\pm 0.10$\\

        MAN(Ours)&WRN-28-10&\textbf{64.51 }$\pm$ 0.47&\textbf{80.93 }$\pm$ 0.33\\
        \hline
    \end{tabular}
    }
    \vspace{-0.1in}
    \caption{Comparison with state-of-the-art results on miniImageNet.The average accuracies of our method are obtained by testing 2000 episodes with $95\%$ confidence intervals.The results of methods with $\ddagger$ include training set and validation set for training models.}
    \label{table1}
    \end{table}

\begin{table}[h]
\vspace{-0.1in}
\begin{center}
   
\setlength{\tabcolsep}{0.6mm}{
\small
\begin{tabular}{lccc
\hline
Models&Backbone&1-shot(\%)&5-shot(\%)\\
        \hline 
        PN$^\dagger$ \cite{DBLP:conf/nips/SnellSZ17}&ResNet-12&$61.74\pm 0.77$&$80.00\pm 0.55$\\
        CTM$^\dagger$ \cite{li2019finding}&ResNet-12&$64.78\pm 0.11$&$81.05\pm 0.52$\\
        MetaOpt-SVM$^\ddagger$ \cite{lee2019meta}&ResNet-12&$65.81\pm 0.74$&$81.75\pm 0.53$\\
       
        MAN(Ours)&ResNet-12& \textbf{65.99} $\pm$ 0.51&\textbf{81.97} $\pm$ 0.37\\
        \hline
        LEO$^\ddagger$ \cite{DBLP:conf/iclr/RusuRSVPOH19}&WRN-28-10&$66.33\pm 0.05$&$81.44\pm 0.09$\\
        wDAE-GNN$^\ddagger$ \cite{gidaris2019generating}&WRN-28-10&$68.18\pm 0.16$&$83.10\pm 0.12$\\

       
        MAN(Ours)&WRN-28-10&\textbf{70.35} $\pm$ 0.51&\textbf{84.90} $\pm$ 0.36\\
        \hline
    \end{tabular}
    }
    \end{center}
    \vspace{-0.2in}
    \caption{Comparison with state-of-the-art 5-way results on tieredImageNet.The average accuracies of our method are obtained by testing 2000 episodes with $95\%$ confidence intervals. The results of methods with $\dagger$ are from \cite{simon2020adaptive}. The results of methods with $\ddagger$ are from \cite{simon2020adaptive} and include training set and validation set for training models.}
    \label{table2}
    \end{table}
\subsection{Comparison with prior work}
We compare various previous methods on different backbone networks, the traditional convolutional network \cite{DBLP:conf/nips/VinyalsBLKW16}, ResNet \cite{lee2019meta} and Wide Residual Network \cite{zagoruyko2016wide} on both \textit{mini}ImageNet and \textit{tiered}ImageNet. Tab. \ref{table1} shows the effectiveness of our MAN on \textit{mini}ImageNet in the cases of different backbone networks.
According to our experiments, in previous works, RelationNet achieves the best performance in both 1-shot and 5-shot settings in the case of traditional convolutional backbone network, MTL and wDAE-GNN achieving the best performance in 1-shot setting in other two backbone networks, BF3S achieving the best performance in 5-shot setting in other two backbone networks. As Tab. \ref{table1} illustrates, the performance of our MAN is much better than traditional few-shot methods in all of three backbone network. Our method outperforms RelationNet by $0.90\%$ in 1-shot setting and 2.99\% in 5-shot setting. Besides, our method outperforms MTL and BF3S by $0.50\%$ and 2.92\% in 1-shot setting and 5-shot setting, respectively, in the case of ResNet backbone network. In the case of WRN backbone network, our method outperforms wDAE-GNN and BF3S by 1.55\% and 1.08\% in 1-shot setting and 5-shot setting, respectively.

Tab. \ref{table2} reports the results on \textit{tiered}ImageNet. As Tab. \ref{table2} illustrates, compared with the most advanced few-shot learning wDAE-GNN method, we only use the training set to train the model and freeze the backbone network during verification, which is more difficult. However, our method outperforms the most advanced wDAE-GNN method by 2.17\% in 5-way 1-shot learning and 1.80\% in 5-way 5-shot learning. The results of Tab. \ref{table2} are obtained by testing 2000 episodes with $95\%$ confidence intervals, which is a common setting in few-shot learning methods.

To verify the effectiveness of the proposed Graph-driven Clustering method, we replace it with the traditional K-means clustering method and carry out the same training and evaluation process. As Tab. \ref{table4} shows, the Graph-driven Clustering method outperforms the K-means clustering method by 1.75\% in the case of they are implemented into the baseline individually without other self-supervised methods. Besides, the Graph-driven Clustering method outperforms the K-means clustering method by 0.56\% in the case of other supervised methods and the attention mechanism are implemented.

\begin{table}[t]
\vspace{-0.1in}
    \centering
    \resizebox{.85\columnwidth}{!}
    {
    \begin{tabular}{lcc
        \hline
        Methods&1-shot(\%)&5-shot(\%)\\
        \hline
        CC \cite{DBLP:conf/cvpr/GidarisK18,DBLP:conf/cvpr/QiBL18}&$58.19\pm 0.45$&$76.42\pm 0.34$\\
       
        K-means&$58.66\pm 0.45$&$76.62\pm 0.35$\\
       
        GC&$60.41\pm 0.46$&$77.46\pm 0.34$\\
        \hline
        MAN (K-means)&$63.95\pm 0.46$&$80.10\pm 0.34$\\
       
        MAN (GC)&\textbf{64.51} $\pm$ 0.47& \textbf{80.93} $\pm$ 0.33\\
        \hline
    \end{tabular}
    }
    \vspace{-0.1in}
    \caption{The comparison results between our Graph-driven and K-means clustering methods with the WRN-28-10 backbone network on miniImageNet dataset.}
    \label{table4}
    \end{table}



\subsection{Ablation study}


In this section, we study the effects of different parts in our MAN on \textit{mini}ImageNet and the results are reported in Tab. \ref{table5}.

   
  
  
   
   
   

\textbf{Effect of Graph-driven Clustering Method.} In order to explore the impact of our Graph-driven Clustering method, we implement the network without the Graph-driven Clustering module. We use the self-supervised branch to conduct all the comparative experiments. In the experiments of rotation prediction and patches location self-supervised methods, we simply use the models provided in \cite{DBLP:conf/iccv/GidarisBKPC19}. These results demonstrate that (1) self-supervised methods can improve few-shot learning and a combination of multiple self-supervision can further promote the improvement, and (2) our Graph-driven Clustering method is effective, which improves the accuracy in both 1-shot and 5-shot settings by 0.52\% and 0.99\%.


\textbf{Effect of Multi-pretext Attention Mechanism.} To evaluate how multi-pretext attention mechanism affects the performance, we replace the attention mechanism by a simple summation of loss functions of the four self-supervised methods. As Tab. \ref{table5} demonstrates, the multi-pretext attention mechanism further improves 0.66\% and 0.71\% in 1-shot and 5-shot settings, compared with direct summation.


    
\begin{table}[t]
\vspace{-0.1in}
    \centering
    \resizebox{.99\columnwidth}{!}
    {
    \begin{tabular}{lcc
        \hline
        Methods&1-shot(\%)&5-shot(\%)\\
        \hline
        CC \cite{DBLP:conf/cvpr/GidarisK18,DBLP:conf/cvpr/QiBL18}&$58.19\pm 0.45$&$76.42\pm 0.34$\\
       
        Rot&$62.81\pm 0.46$&$80.01\pm 0.34$\\
       
        Loc&$60.70\pm 0.47$&$77.61\pm 0.33$\\
       
        Jig&$61.16\pm 0.47$&$77.86\pm 0.35$\\
       
        GC &$60.41\pm 0.46$&$77.46\pm 0.34$\\
        \hline
        MAN (Rot+Loc+Jig) &$63.99\pm 0.47$&$79.94\pm 0.35$\\
       
        SUM (Rot+Loc+Jig+GC)&$63.85\pm 0.46$&$80.22\pm 0.34$\\
       
        MAN (Ours)&\textbf{64.51} $\pm$ 0.47&\textbf{80.93} $\pm$ 0.33\\
        \hline
    \end{tabular}
    }
    \vspace{-0.1in}
    \caption{The results of ablation study with the WRN-28-10 back-bone network on miniImageNet dataset.}
    \label{table5}
    \vspace{-0.1in}
    \end{table}
\vspace{-0.1in}
\section{Conclusion}
To exploit auxiliary information from large amount of unlabeled data for few-shot learning, in this work, we propose a \textbf{G}raph-driven \textbf{C}lustering (GC), a novel \textit{augmentation-free} method for self-supervised learning, which does not rely on any auxiliary sample and utilizes the endogenous correlation information among input samples. Besides, we propose \textbf{M}ulti-pretext \textbf{A}ttention \textbf{N}etwork (MAN), which exploits a specific attention mechanism to combine the traditional \textit{augmentation-relied} methods and our GC, adaptively learning their optimized weights to improve the performance and enabling the feature extractor to obtain more universal representations. We evaluate our MAN extensively on \textit{mini}ImageNet and \textit{tiered}ImageNet datasets and the results demonstrate that the proposed method outperforms the state-of-the-art (SOTA) relevant methods. We hope that our contributions can promote the rapid development of few-shot learning with self-supervision.

\section{Acknowledgement}
This work was supported by The National Key Research and Development Plan of China (2020AAA0103502), National Natural Science Foundation of China (62022009, 61872021), Beijing Nova Program of Science and Technology (Z191100001119050), and State Key Lab of Software Development Environment (SKLSDE-2020ZX-06).



\small
\bibliographystyle{IEEEbib}
