Skip to main content
. 2022 Aug 17;22(16):6148. doi: 10.3390/s22166148
Algorithm 1: PGM for shared features cn.
  • 1:

    Initialize:

  • 2:

         Pi, ρi, Σc, μi, J, N, MAXLOOP, Ai, ρinew2, Σcnew

  • 3:

    for i=1Jdo

  • 4:

        for n=1N do

  • 5:

            μiμi+bi,n

  • 6:

        end for

  • 7:

        μi1Nμi

  • 8:

    end for

  • 9:

    l1

  • 10:

    while MAXLOOPldo            // EM algorithm for updating parameters

  • 11:

        Varc|b[c]ΣcΣcP(PΣcP+Ψ)1PΣc       // Start expectation step

  • 12:

        for n=1N do

  • 13:

            Ec|b[cn](PΣc)(PΣcP+Ψ)1(bnμ)

  • 14:

            Ec|b[cncn]Varc|b[c]+Ec|b[cn]Ec|b[cn]

  • 15:

        end for                              // End expectation step

  • 16:

        for i=1J do                      // Start maximization step

  • 17:

            for n=1N do

  • 18:

               AiAi+(bi,nμi)Ec|b[cn]

  • 19:

            end for

  • 20:

            Ai12Ai

  • 21:

            PinewAi(AiAi)1/2

  • 22:

            for n=1N do

  • 23:

               ρinew2ρinew2+||bi,nμi||22(bi,nμi)PinewEc|b[cn]+tr(Ec|b[cncn])

  • 24:

            end for

  • 25:

            ρinew21Ndiρinew2

  • 26:

        end for

  • 27:

        for n=1N do

  • 28:

            ΣcnewΣcnew+Ec|b[cncn]

  • 29:

        end for

  • 30:

        Σcnew1NΣcnew

  • 31:

        Pi, ρi2, ΣcPinew, ρinew2, Σcnew                // End maximization step

  • 32:

        Initialize:

  • 33:

             Ai, ρinew2, Σcnew

  • 34:

        ll+1

  • 35:

    end while